ECMAScript6では、一般的な「ローカル変数」の概念となる「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)
といった処理を行うことが出来る。