let は、JavaScript のキーワードで、変数を宣言するために使用されます。let は、特にブロックスコープ内で有効な変数を宣言するために用いられ、従来の var と比較して、より適切なスコープ制御を提供します。

let で宣言された変数は、同じスコープ内で再宣言することができません。また、ホイスティング(変数が宣言される前に参照される現象)も、var よりも直感的に動作します。

構文

編集
let 変数名 = 初期値;

let を使用して変数を宣言し、初期値を設定します。初期値は省略することも可能です。

使用例

編集

変数宣言

編集
let name = 'Alice';
let age = 25;

ここでは、name と age という変数が let を使って宣言され、それぞれ初期値が与えられています。

ブロックスコープ

編集
{
  let city = 'Tokyo';
  console.log(city);  // Tokyo
}
console.log(city);  // ReferenceError: city is not defined

let で宣言された変数 city は、宣言されたブロック内でのみ有効であり、ブロック外から参照するとエラーになります。このように、let にはブロックスコープが適用されます。

同じスコープ内での再宣言

編集
let number = 10;
let number = 20;  // SyntaxError: Identifier 'number' has already been declared

同じスコープ内で let を使って同じ変数を再宣言しようとすると、SyntaxError が発生します。この点は、var とは異なります。

初期値なしでの宣言

編集
let fruit;
console.log(fruit);  // undefined

let で初期値を指定せずに変数を宣言した場合、その変数は undefined として初期化されます。

ホイスティング

編集
console.log(foo);  // ReferenceError: Cannot access 'foo' before initialization
let foo = 'bar';

let で宣言された変数は、ホイスティングが発生しますが、var と異なり、変数が宣言される前に参照すると ReferenceError が発生します。

letvar の違い

編集
  • スコープ:
    • let: ブロックスコープ。変数は、宣言されたブロック内でのみ有効。
    • var: 関数スコープ。関数内で宣言された場合、その関数内全体で有効。
  • 再宣言の可否:
    • let: 同じスコープ内で再宣言不可。
    • var: 同じスコープ内で再宣言可能。
  • ホイスティングの違い:
    • let: 変数の宣言はホイスティングされるが、実際に宣言されるまでは参照できない。
    • var: 変数の宣言はホイスティングされ、宣言された場所まで undefined となる。

varlet の違い

編集
var message = 'Hello, World!';
let greeting = 'Hello, JavaScript!';

上記の例では、varlet を使用してそれぞれ変数を宣言していますが、両者はスコープの取り扱いやホイスティングの動作において異なります。

関連項目

編集

参考

編集