JavaScriptの`var`キーワード解説
JavaScriptにおけるvar
キーワードの目的と使用タイミング
var
キーワードの目的
JavaScriptにおいて、var
キーワードは変数を宣言するために使用されます。変数とは、プログラム内でデータを格納するための名前付きのコンテナです。var
キーワードを使用することで、変数を特定のスコープ(有効範囲)内に定義し、その変数に値を割り当てることができます。
var
キーワードの使用タイミング
- 変数を初期化する時:変数を宣言すると同時に値を割り当てる(初期化する)場合も、
var
キーワードを使用します。 - 変数を宣言する時:新しい変数をプログラム内で使用する際には、必ず
var
キーワードを使用して宣言する必要があります。
ECMAScript 6以降では、let
およびconst
キーワードが導入され、変数の宣言方法がより柔軟になりました。これらのキーワードを使用する場合には、var
キーワードを省略することができます。
const
キーワード:ブロックスコープで有効な定数を宣言します。一度値が割り当てられると、再代入はできません。let
キーワード:ブロックスコープ({}内の範囲)で有効な変数を宣言します。再宣言や再代入が可能です。
例
// ECMAScript 5
var x = 10; // 変数xを宣言し、値10を割り当てる
var y; // 変数yを宣言する
y = 20; // 変数yに値20を割り当てる
// ECMAScript 6以降
let z = 30; // ブロックスコープで有効な変数zを宣言し、値30を割り当てる
const pi = 3.14159; // ブロックスコープで有効な定数piを宣言し、値3.14159を割り当てる
JavaScriptにおけるvar
キーワードの例
// 変数を宣言し、値を割り当てる
var x = 10;
console.log(x); // 10
// 変数を宣言してから値を割り当てる
var y;
y = 20;
console.log(y); // 20
// 関数内で変数を宣言する
function myFunction() {
var z = 30;
console.log(z); // 30
}
myFunction();
let
およびconst
キーワードの使用例
// `let`キーワードを使用する
let a = 40;
console.log(a); // 40
a = 50;
console.log(a); // 50
// `const`キーワードを使用する
const b = 60;
console.log(b); // 60
// b = 70; // エラー: 再代入はできません
var
キーワードと関数スコープ
function outerFunction() {
var x = 100;
console.log(x); // 100
function innerFunction() {
var y = 200;
console.log(x); // 100
console.log(y); // 200
}
innerFunction();
}
outerFunction();
if (true) {
var x = 100;
}
console.log(x); // 100 (変数は関数スコープで有効)
for (var i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2
}
console.log(i); // 3 (変数は関数スコープで有効)
let
およびconst
キーワードとブロックスコープ
if (true) {
let x = 100;
}
console.log(x); // エラー: xは定義されていません
for (let i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2
}
console.log(i); // エラー: iは定義されていません
var
キーワードの代替方法
JavaScriptのvar
キーワードは、変数を宣言するための基本的な構文です。しかし、ECMAScript 6以降では、より柔軟で安全な変数の宣言方法として、let
およびconst
キーワードが導入されました。
let
キーワード
- 再代入可能:
let
キーワードで宣言された変数は、再代入することができます。 - 再宣言禁止:同じブロック内で同じ名前の変数を再宣言することはできません。
- ブロックスコープ:
let
キーワードで宣言された変数は、ブロック({}
内の範囲)内で有効です。これにより、変数のスコープがより明確になり、意図しない変数の使用を防ぐことができます。
const
キーワード
- 再代入禁止:
const
キーワードで宣言された変数は、一度値が割り当てられると再代入できません。これにより、変数の値が不変であることを保証することができます。 - ブロックスコープ:
const
キーワードで宣言された変数も、ブロックスコープで有効です。
使用例
// `let`キーワードの使用
if (true) {
let x = 10;
console.log(x); // 10
}
// console.log(x); // エラー: xは定義されていません
// `const`キーワードの使用
const pi = 3.14159;
console.log(pi); // 3.14159
// pi = 3.14; // エラー: 再代入はできません
var
キーワードの使用を避ける理由
- ホイスティング:
var
キーワードで宣言された変数は、宣言の前に参照することができます。これは、コードの可読性を低下させ、エラーの原因となることがあります。 - 関数スコープ:
var
キーワードで宣言された変数は関数スコープで有効であり、ブロックスコープでは有効ではありません。これは、変数のスコープが不明瞭になり、バグの原因となる可能性があります。
javascript keyword ecmascript-5