immutable(イミュータブル)
書き換えができないもの。
プリミティブ型の値が該当する。
文字列、数値、BigInt、真偽値、undefined、シンボルなど
何か変数の値を変更した際に、参照が新しい値に向くことになる。
新しい値がどこかのメモリ領域に追加され、そこに参照先が切り替わる。
参照先が変わるような操作のことをイミュータブルは操作という。
元の値を上書きしたことにはならない。
mutable(ミュータブル)
書き換えが可能なもの。
イミュータブルな値以外、オブジェクトなど
元の配列が定義されていて、そこに新しい値が追加されたとき、配列に対して参照が貼られていて、その配列から新しい参照が追加されるイメージ。
変数の参照する先が変わらない状態のこと。
元の配列の中身が変わっている=値が上書きされている。
イミュータビリティの保持
配列のようなミュータブルな値に対してイミュータブルな操作を行うことをイミュータビリティの保持という。
新しい配列の中に元あった配列の中身をコピーする
変数から別の配列に参照先が変わる。