今回は、JavaScriptの変数と定数について解説していきます。
変数
script.jsを以下のように書き換えてみてください。
let msg = 'Hello, world!';
console.log(msg);
コンソールを確認すると、「Hello, world!」と表示されます。
let 変数名 = 代入したい値;
この形で変数を定義することができます。
変数名は任意の名前をつけることができますが、数字から始めることはできません。2文字目以降に数字が入る分には問題ありません。
また、JavaScriptにはifやtrueといった、特別な意味を持つ単語があり、それらは変数名に使うことができません。
そのような単語を、予約語と言います。
予約語は他にも多くありますが、JavaScriptを学んでいるうちにこれらの特別な単語は自然と覚えるので、現時点で暗記する必要はありません。
JavaScriptにおいて=
はイコール(同等)という意味ではなく、代入という意味を持つので覚えておいてください。
変数は、let以外にもvarでも定義することができます
var msg = 'Hello, world!';
letは後から追加されたため、古くに書かれたコードではvarが使われていますが、現在はletを使うようになっています。
理由としては、varはletに比べて上書きされやすく、バグが起きる可能性が高くなるです。
その点については別のレッスンで詳しく書きますが、現在はletが使われているということを覚えておいてください。
次に、以下のように書き換えてみてください。
let msg = 'Hello, world!';
msg = 'Hello, JavaScript!';
console.log(msg);
コンソールを確認すると、「Hello, JavaScript!」と表示されます。
このように変数には再代入することが可能です。
letとvarは、初期値なしでも宣言できます。
let msg;
msg = 'Hello, world!';
console.log(msg);
定数
次に定数を使っていきます。
script.jsを以下のコードに書き換えてください。
const msg = 'Hello, world!';
console.log(msg);
ここではletではなくconstで定義をしています。
constは定数を定義するときに使用します。
letやvarは変数なので再代入ができましたが、定数は再代入ができません。
ですので、以下のコードはエラーになります。
const msg = 'Hello, world!';
msg = 'Hello, JavaScript';
console.log(msg);
このコードを実行すると、コンソールにエラーが表示され、「Hello, JavaScript」は表示されません。
定数を使うと、意図せず中身が書き換えられる心配がないため、バグを減らすことができます。
書き換えが必要なもの以外は、定数で定義するようにしましょう。