スキップしてメイン コンテンツに移動

letとconstで変数を制覇

letとconstで変数を制覇

変数の宣言とデータ格納

JavaScript初心者にとって、変数の基本は最初に学ぶべき重要な概念です。変数の宣言は letconstvar の3つのキーワードで行います。宣言した変数に値を代入すると、データ格納が完了します。例えば、let count = 0; のように書くと、数値 0 が格納されます。

ここで注意したいのは、var は関数スコープを持ち、letconst はブロックスコープを持つ点です。スコープは変数が有効な範囲を決めるため、後で説明する再代入や定数との関係を理解する上で重要です。

letとvarの違い

JavaScriptの歴史的背景から、var は古い構文であり、変数の再宣言や巻き上げ(hoisting)の挙動が複雑です。let は ES6 で導入され、再宣言が禁止され、巻き上げ時に未定義状態(Temporal Dead Zone)になるため、より安全に変数を扱えます。

例として、以下のコードを見てみましょう。

function test() {
  console.log(x); // ReferenceError
  let x = 10;
}
test();

このように、let は宣言前にアクセスするとエラーになりますが、var なら undefined が出力されます。

constと定数

定数は値の再代入を禁止するため、const を使います。const で宣言した変数は、初期化後に値を変更できません。これは「定数」という概念と一致します。

ただし、オブジェクトや配列の場合は、参照先のプロパティや要素を変更することは可能です。以下の例で確認してください。

const arr = [1, 2, 3];
arr.push(4); // OK
arr = [5, 6]; // TypeError

このように、const は「再代入を禁止する」ことに焦点を当てている点が重要です。

スコープと再代入

スコープは変数が有効な範囲を決める概念です。ブロックスコープ({} 内)では letconst が有効で、関数スコープでは var が有効です。スコープを意識しないと、予期せぬ変数の上書きや参照エラーが発生します。

再代入については、let で宣言した変数は再代入が可能ですが、const で宣言した変数は再代入できません。これにより、コードの意図が明確になり、バグを減らすことができます。

まとめとして、JavaScript初心者はまず letconst を使い、var は必要最低限に留めることをおすすめします。スコープと再代入の違いを理解することで、より安全で読みやすいコードを書けるようになります。

この記事はAIによって作成されました。

コメント