はじめに
JavaScriptのデータ型は大きくプリミティブ型とオブジェクトの2つに分かれます。
そのうちのプリミティブ型の特性として挙げられるのがimmutableです。
immutableは、「一度作成したら変更できない」ことを指します。しかし、私はletを使えば変更可能じゃないか!と思いました。
疑問点
immutableは「一度作成したら変更できない」を意味するのではないの?変更できるじゃん!
index.js
let message = 'Hello';
console.log(message);
message = message + 'World';
console.log(message);
Hello
HelloWorld
messageがHelloからHelloWorldに変わっています。
結論
私が行なったことは変更ではなく、再代入でした。(変数messageに変数messageと文字列Worldを繋いで生成した文字列を格納している場所を渡している)*参考文献中の記事がわかりやすかったです。
変更とは、以下のような既存の値に手を加えるだけのことを指すようです。
index.js
let message = 'Hello';
console.log(message);
message[0] = 'a';
console.log(message);
Hello
Hello
変更を加える前と後でmessageが変わっていないことから、プリミティブ型である文字列がimmutableであることがわかります。