~文法メモ~ 「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自体への再代入は出来ない。