JavaScript|メモ|constは上書きできない?

今更の疑問

ProgateのJavaScript(ES6)の学習コースを復習しておりましたら

疑問が湧きまして。

const(定数)は更新できないのでは?

JavaScript学習コースⅡの7章「配列の要素の更新」での事です。

定数 に代入された配列の要素を 更新 する訳です。

でも 定数 は更新できないって習ったじゃん?

更新できない 定数 に設定することで予期せぬ更新を防ぐって習ったじゃん?

でも更新できちゃうの🤔?

調べた結果

変数の正体とはアドレスです。
定数が制限するのはアドレス変更、つまり再代入です。
参照型ではアドレス変更をせずに値を変更できるため、定数でも値の変更ができます。

qiita.com

まだちょっとわからなかったので自分なりにかみ砕いてみました

どこを更新しているのか

まず基本はこう。

const i = 9; ←定数 i に 9 を代入

i = 3; ←定数 i を 3 で更新 ←error

定数は更新できないってヤツですね。

で、7章でやっていることは 配列の要素の更新

const animals = [“dog”, “cat”, “sheep”]; ←定数 animals に 配列を代入

animals[2] = “rabbit”; ←定数animalsに代入された 配列の3番目を rabbitに 更新

配列の内容を更新している ≠ 定数を更新している と言う事のようです

そうかナルホド!と言う程すっきりした訳でもないけど一応納得出来ました。