- var: 「var」は、古いバージョンのJavaScriptで使用されてきた変数宣言キーワードです。このキーワードを使用すると、変数のスコープは関数スコープとなります。つまり、変数が宣言された関数内でのみアクセス可能です。また、同じ変数名を複数回宣言してもエラーは発生しません。
function example() {
var x = 10;
if (true) {
var x = 20; // 同じ変数名を再宣言
console.log(x); // 出力: 20
}
console.log(x); // 出力: 20
}
- let: 「let」はES6(ECMAScript 2015)で導入された変数宣言キーワードです。このキーワードを使用すると、変数のスコープはブロックスコープとなります。つまり、変数が宣言されたブロック内でのみアクセス可能です。また、同じ変数名を同じスコープ内で再宣言するとエラーが発生します。
function example() {
let x = 10;
if (true) {
let x = 20; // 同じ変数名を再宣言(エラー)
console.log(x);
}
console.log(x);
}
- const: 「const」もES6で導入された変数宣言キーワードです。このキーワードを使用すると、変数は定数として宣言されます。つまり、一度値が代入されるとその後変更することはできません。また、「const」もブロックスコープを持ち、同じ変数名の再宣言はエラーとなります。
function example() {
const x = 10;
if (true) {
const x = 20; // 同じ変数名を再宣言(エラー)
console.log(x);
}
console.log(x);
}
これらの変数宣言キーワードの違いを理解することは、JavaScriptのコーディングで役立ちます。適切なキーワードを使用して変数を宣言することで、スコープの問題を回避し、意図しない変更を防止することができます。