1
私はJavaScriptホイストを理解しようとしていましたが、私が理解したところでは、コードの実行前にすべての変数宣言に対してメモリ空間が確保されています。同じ変数の複数の宣言のJavaScriptホイスト
同じ変数の複数の宣言の場合にインタープリタがどのようにしてホイストするかを理解したいと思います。出力は、関数宣言である
console.log(a);
//first declaration
function a() {
console.log('hello');
}
//second declaration
var a = 2;
:次のコードを検討だから
function a() {
console.log('hello');
}
、Iは最初の宣言インタプリタ遭遇は、メモリに格納されているものであると仮定しています。ただし、宣言の順序を次のように変更します。
console.log(a);
//first declaration
var a = 2;
//second declaration
function a() {
console.log('hello');
}
結果は同じです。インタプリタは最初の宣言を無視し、2番目の宣言をメモリに格納します。なぜこうなった?後者の場合の出力はundefined
ではないでしょうか?
ので、後続の複数の宣言は無視され
? –@TarunDugarまあまあです。すでに割り当てられた値は、変数宣言によってundefinedに置き換えられません。 –
よろしくお願いします。ありがとう。 –