~文法メモ~ 「let」

概要

ECMAScript6では、一般的な「ローカル変数」の概念となる「let」が導入されました。

ブロックスコープと「let」

通常まともにブロックスコープが機能しているならば、
下記のi変数は、{ }の外からは見えないはずですが、
JavaScriptでは見えてしまっていた。

if (true) {
    var i = 1;
}
hm.debuginfo(i);

letを使用することで見えなくなる。

if (true) {
    let i = 1;
}
hm.debuginfo(i); // エラー (i is not defined)

これを応用することで、

{
    let i = 1; // ブロックの外からは見えない
}
hm.debuginfo(i); // エラー (i is not defined)

といった処理を行うことが出来る。