ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
JavaScriptに3種類ある変数・定数宣言のうちの一つで、ブロックスコープのローカル変数を宣言する。JavaScript 1.7およびECMAScript 2015 (ES6)から追加された。
let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN];
カンマで区切って1行に複数の変数を宣言できる。また、それぞれで初期値の定義もできる。
for文の中で使うlet宣言。
for (let i = 0; i < 3; i++) { ... }
ブロックスコープ内でletによる再定義がある場合、varの効果が及ばない。
var a = 10; { console.log(a); // ※アクセスできない。これがあるとエラーで以降実行されないので注意※ let a = 20; console.log(a); // 結果は`20` } console.log(a); // 結果は`10`
一つ目のconsole.log(a)は参考のために記載されているが、これがあると動作しないので実験する場合は注意が必要である。なお実装によっては動作し、結果がundefinedになるものもある。
JavaScript 1.7にはlet文(letブロック)としての用法が存在した。
var a = 10; let (a = 2 * a) { console.log(a); // 結果は`20` } console.log(a); // 結果は`10`
しかしこの仕様はECMAScript 2015 (ES6)には採用されず、Mozilla FirefoxでもECMAScript 2015 (ES6)準拠のためにFirefox 44以降では仕様から削除され利用できなくなった。
従来のJavaScriptは、大まかにはグローバルスコープと関数スコープしか存在しなかった。
これは理由が明確で、JavaScriptの設計思想として「ブロックはスコープではなかった」からである。しかしJavaScriptで大規模アプリケーションを作成する時代になると、この設計は需要にそぐわなくなった。JavaScriptを設計していたブレンダン・アイクが取れる解決策は一つしかなく、結果、ブロックスコープで変数宣言をするための新しいキーワードを追加した。それがletである。
JavaScript 1.7からlet文、let式、let宣言が導入され、2006(平成18)年リリースのFirefox 2.0に搭載された。当時ECMAScriptの策定が紛糾していたこともあり、ECMAScriptでは遅れてECMAScript 2015から導入されている。
varにあった諸問題を解決させる、次のような特徴がある。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます