~文法メモ~ 「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)
    

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