プリミティブ型(Number型やString型等)の変数は、constで定義することで変更不可にできます。
これを利用して、定数値を定義することができます。
【サンプルコード】
1 2 3 |
const hoge = 1; hoge = 2; console.log(hoge); |
【ChromeのデベロッパーツールのConsoleで実行】
1 2 |
Uncaught TypeError: Assignment to constant variable. at <anonymous>:2:6 |
しかし、オブジェクト型の場合、constで保持されるのは変数が指し示すアドレスであり、値は変更可能です。
そのため、定数値を定義するには適していません。
【サンプルコード】
1 2 3 4 5 |
const obj = { hoge: 1 }; obj.hoge = 2; console.log(obj.hoge); |
【ChromeのデベロッパーツールのConsoleで実行】
1 |
2 |
オブジェクト型で定数値を定義したい場合は、Object.freeze()を使う必要があります。
これを使うことで、オブジェクト型の変数が指し示す値を変更不可にすることができます。
【サンプルコード】
1 2 3 4 5 6 |
const obj = { hoge: 1 }; Object.freeze(obj); obj.hoge = 2; console.log(obj.hoge); |
【ChromeのデベロッパーツールのConsoleで実行】
1 |
1 |
いかがでしたでしょうか。
コーディングミスがない限りは定数値を書き変えることはないためお作法的なものに近いのですが、覚えておいて損はない内容でしょう。
来週以降は、コーディングからは一旦離れて、暗黙知的なものや経験則的なものを記事にしていきたいと思います!
コメント