定数を使おう(const)
値が変わらないデータには const を使って定数として宣言できます。const と let の違いや、使い分けの指針を学びます。
定数とは
定数とは、一度代入したら値を変更しないデータのことです。JavaScript では、定数を宣言するために const キーワードを使います。
const greeting = "こんにちは"; console.log(greeting); // => こんにちは
前のレッスンで学んだ let と同じように、名前をつけてデータを保存できます。ただし、const で宣言したデータは後から上書きできないという違いがあります。
const で定数を宣言する
const の書き方は let とほぼ同じです。let の代わりに const と書くだけです。
const language = "JavaScript"; console.log(language); // => JavaScript
const で宣言するときは、宣言と同時に値を代入する必要があります。 let のように宣言だけして後から代入することはできません。
const message = "Hello"; // OK:宣言と代入を同時に行う
const message; // => SyntaxError: Missing initializer in const declaration
const と let の違い
const と let の最大の違いは、後から値を変更できるかどうかです。
let は値を上書きできる
let で宣言した変数は、後から別の値を代入し直せます。
let color = "赤"; color = "青"; // OK:上書きできる console.log(color); // => 青
const は値を上書きできない
const で宣言した定数には、後から別の値を代入できません。再代入しようとすると、エラーが発生してプログラムが停止します。
const color = "赤"; color = "青"; // => TypeError: Assignment to constant variable.
このエラーは「定数に値を代入しようとした」という意味です。プログラムのミスを早い段階で見つけられるため、安全にコードを書くことができます。
const と let の使い分け
JavaScript では、基本的に const を使い、値を変更する必要があるときだけ let を使うのがよいとされています。
const name = "太郎"; // 名前は変わらないので const let greeting = "おはよう"; // あいさつは後で変わるので let greeting = "こんにちは"; // let なので上書きできる console.log(name); // => 太郎 console.log(greeting); // => こんにちは
迷ったときは、まず const で宣言してみましょう。後から値を変更する必要が出てきたら、そのときに let に変えれば大丈夫です。
まとめ
constは値を変更しないデータを宣言するためのキーワードconstで宣言した定数に再代入するとエラーになるletは後から値を変更できるが、constはできない- 基本は
constを使い、再代入が必要なときだけletを使う
演習に挑戦