JavaScriptの変数宣言
JavaScriptでは、変数を使用してデータを保存することができます。変数を宣言するには、var
、let
、またはconst
キーワードを使用します。
varは、従来のJavaScriptの変数宣言キーワードです。letは、ブロックスコープの変数宣言キーワードです。constは、定数の変数宣言キーワードです。
var
var
で宣言された変数は、グローバルスコープまたは関数スコープに属します。グローバルスコープは、コード全体で参照できる変数のスコープです。関数スコープは、関数内だけで参照できる変数のスコープです。
var
で宣言された変数は、宣言時に初期化され、undefinedが代入されます。また、var
で宣言された変数は、再代入することができます。
var name = "John Doe";
// グローバルスコープ
console.log(name); // 出力:John Doe
function foo() {
// 関数スコープ
var name = "Jane Doe";
console.log(name); // 出力:Jane Doe
}
foo();
let
let
で宣言された変数は、ブロックスコープに属します。ブロックスコープは、で囲まれたコードブロックのスコープです。
let
で宣言された変数は、宣言時に初期化され、undefinedが代入されます。また、let
で宣言された変数は、再代入することができますが、スコープの範囲外で参照するとundefinedが返されます。
{
let name = "John Doe";
console.log(name); // 出力:John Doe
}
// スコープの範囲外
console.log(name); // 出力:undefined
const
const
で宣言された変数は、定数です。定数は、一度値を代入すると、再代入することができません。また、const
で宣言された変数は、ブロックスコープに属します。
const name = "John Doe";
// 再代入できない
name = "Jane Doe"; // エラー
// スコープの範囲外
console.log(name); // 出力:John Doe
var、let、constの違い
項目 | var | let | const |
---|---|---|---|
スコープ | グローバルスコープまたは関数スコープ | ブロックスコープ | ブロックスコープ |
初期化 | undefinedが代入される | undefinedが代入される | undefinedが代入される |
再代入 | 可能 | 可能(スコープの範囲外で参照するとundefinedが返される) | 不可 |
まとめ
var
、let
、const
は、JavaScriptの変数宣言キーワードです。var
は従来のJavaScriptの変数宣言キーワードですが、let
とconst
は、より安全で保守しやすいコードを書くために導入されました。
let
は、var
と同じように再代入することができますが、スコープの範囲外で参照するとundefinedが返される点が異なります。
const
は、一度値を代入すると、再代入することができません。これにより、変数の値が意図せず変更されるリスクを減らすことができます。
解説
- 最新のJavaScriptの標準では、
var
ではなく、let
またはconst
を使用することを推奨しています。 let
は、var
と同じように再代入することができますが、スコープの範囲外で参照するとundefinedが返される点が異なります。const
は、一度値を代入すると、再代入することができません。これにより、変数の値が意図せず変更されるリスクを減らすことができます。
これらの違いを理解することで、より安全で保守しやすいJavaScriptコードを書くことができます。