モダンJavaScriptの必須知識!var、let、constを使い分けよう
JavaScriptにおける var キーワードの役割と使用タイミング
本記事では、var
キーワードの役割と、いつ使用すべきか (または省略すべきか) について、分かりやすく解説します。
var キーワードの役割
var
キーワードは、変数を 宣言 するために使用されます。変数とは、プログラム内で値を保存するための名前付きの領域です。
// 変数を宣言
var name = "John Doe";
// 変数に値を代入
name = "Jane Doe";
// 変数の値を出力
console.log(name); // "Jane Doe" と出力
上記コードでは、var
キーワードを使って name
という変数を宣言し、"John Doe" という値を代入しています。その後、name
変数の値を "Jane Doe" に変更し、最後にその値を出力しています。
var キーワードを使用するタイミング
var
キーワードは、以下の状況で変数を宣言する際に使用します。
- 関数内で変数を宣言する場合
以下の例は、var
キーワードを使用して関数内で変数を宣言する例です。
function sayHello() {
// 関数内で変数を宣言
var name = "John Doe";
// 変数を使用して挨拶
console.log("Hello, " + name + "!");
}
sayHello(); // "Hello, John Doe!" と出力
var キーワードを使用しないタイミング
近年では、let
や const
といった新しいキーワードが導入されており、var
キーワードよりもこれらのキーワードを使用することを推奨されています。
- 再代入しない変数を宣言する場合
if (condition) {
// ブロックスコープ内で変数を宣言
let name = "John Doe";
// 変数を使用して挨拶
console.log("Hello, " + name + "!");
}
// 'name' 変数はブロック外では使用できない
console.log(name); // エラーが発生
しかし、ブロック外で name
変数を使用しようとすると、エラーが発生します。これは、let
キーワードで宣言された変数はブロックスコープを持つためです。
var
キーワードは、JavaScriptで変数を宣言するために使用されます。しかし、近年では let
や const
といった新しいキーワードも登場しており、var
の使い方が迷う方も多いでしょう。
以下の点を参考に、状況に応じて適切なキーワードを選択してください。
- 関数内で変数を宣言する場合:
var
またはlet
を使用 - 再代入しない変数を宣言する場合:
const
を使用
これらのキーワードを使い分けることで、コードの読みやすさや保守性を向上させることができます。
var キーワードを使用したサンプルコード
// 関数内で変数を宣言
function sayHello() {
var name = "John Doe";
console.log("Hello, " + name + "!");
}
sayHello(); // "Hello, John Doe!" と出力
// ループ内で変数を宣言
for (var i = 0; i < 10; i++) {
console.log(i);
}
// グローバル変数を宣言
var globalVar = "This is a global variable";
console.log(globalVar); // "This is a global variable" と出力
let キーワードを使用したサンプルコード
// ブロックスコープ内で変数を宣言
if (condition) {
let name = "John Doe";
console.log("Hello, " + name + "!");
}
// 'name' 変数はブロック外では使用できない
console.log(name); // エラーが発生
// 再代入しない変数を宣言
const PI = 3.14;
console.log(PI); // 3.14 と出力
const キーワードを使用したサンプルコード
// 再代入できない変数を宣言
const PI = 3.14;
console.log(PI); // 3.14 と出力
// PI の値を変更しようとするとエラーが発生
PI = 3.15; // エラーが発生
var キーワードの代替方法
let
キーワードは、ブロックスコープを持つ変数を宣言するために使用されます。ブロックスコープとは、変数の有効範囲がブロック内に限定されることを意味します。
if (condition) {
let name = "John Doe";
console.log("Hello, " + name + "!");
}
// 'name' 変数はブロック外では使用できない
console.log(name); // エラーが発生
上記の例では、if
ステートメントのブロック内で let
キーワードを使って name
という変数を宣言しています。このため、name
変数はブロック内でのみ有効であり、ブロック外で使用しようとするとエラーが発生します。
let
キーワードを使用するメリットは以下の通りです。
- コードの読みやすさが向上する
- 変数のスコープを明確にできる
- バグを防ぐことができる
const
キーワードは、再代入できない変数を宣言するために使用されます。
const PI = 3.14;
console.log(PI); // 3.14 と出力
// PI の値を変更しようとするとエラーが発生
PI = 3.15; // エラーが発生
上記の例では、const
キーワードを使って PI
という変数を宣言し、3.14 という値を代入しています。その後、PI
変数の値を変更しようとすると、エラーが発生します。
- コードの意図を明確にできる
- 変数の誤った変更を防ぐことができる
var
キーワードは、従来から使われてきた変数宣言のキーワードですが、近年では let
や const
といった新しいキーワードを使用することを推奨されています。
javascript keyword ecmascript-5