JavaScript/let
let
編集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
が発生します。
- スコープ:
- 再宣言の可否:
- ホイスティングの違い:
var message = 'Hello, World!'; let greeting = 'Hello, JavaScript!';
上記の例では、var
と let
を使用してそれぞれ変数を宣言していますが、両者はスコープの取り扱いやホイスティングの動作において異なります。