質問: []; list.push(3); list.push(44); list[0] += 1; console.log(list); ``` こうすると結果は[ 4, 44 ]となります。 Constと定義しているのになぜ配列の中身が変更されるのでしょうか? また、そもそもなぜPushできるのでしょうか?
回答: JavaScript > リファレンス > 文と宣言 > const > > const 宣言は、値への読み取り専用の参照を作ります。その値が不変ということでは**なく**、その変数識別子が再代入できないというだけです。たとえば、定数がオブジェクトのコンテンツの場合、オブジェクトのコンテンツ(例 その引数)自体は変更可能です。 > > > ES6のconstを使い倒すレシピ1 - 前提共有編 〜 JSおくのほそ道 #034 > > constの盲点 > > ではconst化すれば、あらゆる値の状態変化がないことを保証できるかというと、そうではありません。 > > const宣言の挙動としては**「再代入を許容しない」**ことにあります。再代入以外は許容します。 > > > とのことです。