ECMAScript6では、「再代入出来ない定数」の概念となる「const」が導入されました。
constもletと同じ「ブロックスコープ」となります。
通常まともにブロックスコープが機能しているならば、
下記のi変数は、{ }の外からは見えないはずですが、
JavaScriptでは見えてしまっていた。
const counter = 10; counter = 20; // エラー
constは再代入出来ないという意味であり、変更出来ないわけではない点に注意
const my_list = [1, 2, 3]; my_list[1] = 100; // OK。my_listの各要素の変更は問題ない。禁止されてるのは、my_listそのものへの再代入のみ。 hm.debuginfo( String(my_list) ); // 1,100,3 my_list = [5,6,7]; // エラー。my_list自体への再代入は出来ない。