~文法メモ~ 「const」

概要

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自体への再代入は出来ない。