中学校や高校の数学で「変数」について学んだかと思います。
xやyと言った変数に数値を当てはめると、式の値が計算できたことを思い出してください。
同じように、プログラミングにも変数が存在します。
変数の値によってプログラムの処理を変化させることができたり、値を使い回したりといった用途で使用します。
今回は、変数の使い方について説明していきます。
目次
変数
変数とは、数値や文字列データにつけられたラベルのようなものです。
例えば、コンソールに文字列を表示することを考えてみましょう。
コンソールの使い方については、以下の記事を参考にしてください。
以下のコードはコンソールに「こんにちは」と表示するプログラムです。
(二重引用符で囲まれたものは文字列データとして扱われます)
console.log("こんにちは");
このコードを実行すると、コンソールに以下のように表示されます。
こんにちは
このままでもプログラムとしては問題ありません。
しかし、「こんにちは」という文字列を別の箇所でも使いまわしたい場合は、この文字列に別名をつけてそれを利用することができます。
以下は、コンソールに表示する処理を変数を利用して書いた例です。
let greeting = "こんにちは"; // 「こんにちは」という文字列にgreetingという別名をつける
console.log(greeting); // greetingという別名を使って「こんにちは」という文字列を取得できる
console.log(greeting); // 何度でも繰り返し利用できる
上記のコードを実行すると、コンソールに以下のように表示されます。
こんにちは
こんにちは
console.logにはgreetingという文字を渡しているのに、コンソールの表示は「こんにちは」と出力されることに注意してください。
このように、別名を使ってもプログラムは中身の値を利用して処理してくれます。
これが変数の使い方になります。
変数の宣言
変数を利用するためには、最初にプログラムに変数を認識させなければなりません。
それが変数の宣言です。
変数の宣言には「let」という命令を使います。
let 変数名 = 値;
変数名は識別子とも言います。
変数名は基本的に自由につけられますが、識別子の命名規則に従う必要があります。
識別子の命名規則については下記の記事を参照してください。
変数の再代入
もういちど、変数の宣言方法を確認しましょう。
let 変数名 = 値;
ここで、「=」という記号が使われています。
この「=」は代入演算子と呼ばれており、変数への値の代入を行う働きをします。
数学などでは、両辺の値が同じことを「=」で表しますが、JavaScriptにおいては意味が違うので注意しましょう。
一度定義された変数に、最初とは別の値を入れ替えることができます。これを値の再代入と言います。
let greeting = "こんにちは"; // 変数宣言
console.log(greeting); // コンソールには「こんにちは」と表示される
greeting = "さようなら"; // 値の再代入
console.log(greeting); // コンソールには「さようなら」と表示される
値の再代入では「let」は必要ありません。
代入演算子で別の値を代入するのみです。
このように、変数の宣言は最初のみで大丈夫ですので、覚えておきましょう。
変数の再宣言
変数の再宣言とは同じ変数を再度宣言することです。
JavaScriptでは変数の再宣言はエラーになってしまいますので、利用できません。
let greeting = "こんにちは";
let greeting = "さようなら"; // letを使って再度同じ変数を宣言しているためエラーになる
値の再代入との違いに注意しましょう。
変数のコピー
変数への代入は直接値を指定する以外にも、別の変数の値を代入することができます。これを変数のコピーと言います。
let greeting = "こんにちは";
let goodby = "さようなら";
greeting = goodby; // 変数greetingにgoodbyの値(ここでは「さようなら」という文字列)を代入している
console.log(greeting); // コンソールには「さようなら」と表示される
コピー先の変数に値が存在する場合は、コピー元の値で上書きされますので注意しておきましょう。
定数
定数とは変数と同じように数値や文字列データにつけられたラベルのようなものですが、変数が再代入や変数のコピーができたのに対して、定数ではそのようなことができません。
つまり、一度定数を定義するとその値は変更することができません。
定数の宣言
定数の宣言には「const」という命令を利用します。それ以外は「let」と同じ書き方になります。
const greeting = "こんにちは";
console.log(greeting); // コンソールには「こんにちは」と表示される
greeting = "さようなら"; // 定数を再代入しようとするとエラーになる
定数は再代入が不可能なので、書き換えたくない値がある場合に利用されます。
まとめ
今回は変数・定数の宣言について解説しました。
次回は数値や文字列などのデータ型について説明します。