vanilla JavaScriptでは、変数は「var
」キーワードで宣言されます。 ES6では、let
とconst
キーワードを使用しても変数を定義できるようになりました。 この3つのキーワードは、変数の宣言と初期化のための類似した構文を持っていますが、その範囲と使い方が異なります。 3659>
var キーワード
‘var
‘ キーワードは従来の変数定義構文を持っています。 オプションとして、変数を値で初期化することができます。var
文で初期化しない場合、変数は自動的にJavaScriptの値undefined
に割り当てられます。
1) スコープ
2) var宣言のホイスト
var
キーワードで宣言した変数はホイストの対象となることに注意してください。 ホイスティングとは、関数の最後で変数 (宣言済みだが初期化されていない) を宣言すると、ランタイムがそれを先頭に持ち上げ、宣言される前にその変数を使用していたとしても、エラーは発生しないことを意味します。 JavaScript Hoisting
3) ‘var’ キーワードを使用しない場合
JavaScript では、変数宣言に var
キーワードを使用しない場合(暗黙の宣言)、グローバル スコープに変数が作成されます。 たまたま他の人がグローバル変数 index
を使っていた場合、その人の変数を上書きしてしまったことになります。
変数にグローバル・スコープを与えないためには、変数宣言で var
キーワードを使用しなければなりません。
let キーワード
let
キーワードは var
キーワードに非常に似ていますが、よりスコープに制限があります。
const キーワード
-
const
定値でブロックスコープの変数を宣言しています。 -
const
は、let
キーワードと同じスコープの原則に従っています。 - もし、宣言する変数が再代入できないことがわかっているなら、constで宣言し、それ以外はletキーワードを使用します。