主な内容の要点
1. 変数の宣言方法
- 古くからあった
varに加えて、ES6 以降ではletとconstも使えるようになっています。
var 変数名;
let 変数名;
const 変数名=初期値;JavaScript const は宣言と同時に初期値を与える必要があり、後から再代入できません。
2. 複数変数のまとめて宣言
var a, b, c;やlet x, y, z;のようにカンマで区切って複数宣言できます。
var 変数名1, 変数2, ...;
let 変数名1, 変数2, ...;JavaScript3. 宣言を省略した場合
- 宣言せずに値を読むと、
ReferenceErrorが出ます。 - 宣言せずに値を代入することは、通常(非 strict モード)グローバル変数として扱われてしまうことがあります。
- ただし strict モード では、宣言なしの代入も
ReferenceErrorになります。
4. var、let、const の違い
- 再宣言
-
varは同じ名前で再宣言してもエラーになりません。 let/constは同じ名前で再宣言すると エラー になります。
-
- スコープ(有効範囲)
varは 関数スコープ(関数内で宣言されたらその関数全体で有効)です。letやconstは ブロックスコープ({ … }の範囲内でのみ有効)です。
| 特性 | var | let / const |
|---|---|---|
| 再宣言 | 同じスコープで同じ名前を再宣言してもエラーにならない | 同じスコープで再宣言すると構文エラーになる |
| スコープ / 有効範囲 | 関数スコープ(関数内部で宣言すれば、その関数全体で有効) | ブロックスコープ({ ... } の中で宣言された変数は、そのブロック内だけ有効) |
補足と注意点/モダンな使い方のおすすめ
- 現代の JavaScript では、ほとんどの場合
letとconstを使う ようにした方が安全でバグも少なくなります。- 再代入しない変数は
const - 再代入する必要がある変数は
let - レガシーなコードや特殊事情でない限り
varは使わない方向が主流です。
- 再代入しない変数は
- スコープを意識することが非常に重要。特にループや条件文の中で
varを使うと、意図しない動きになることがあります。 - strict モード(
"use strict";)を使うと、宣言なしの変数代入を防ぐことができ、より安全なコードになります。 - これらの違いとスコープの性質を理解しておくと、後でクロージャや非同期処理、モジュール設計などを学ぶときに役立ちます。
