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キーワードを使用します。