JSホイストの値を更新するためのこの簡単なプログラムを作成します。しかし、私の理解によると、グローバルxは更新する必要がありますが、アップデートしていません。関数のグローバル変数が更新されない
x = 5;
var w = function(){
x = 7
var x;
console.log(x);
x = 10;
console.log(x);
};
w();
console.log(x);
出力:それはグローバルXを更新しなかった理由
は、誰もがより詳細に説明してもらえますか?
Javascriptは値の参照に基づいていますので、x = 7と書くと、グローバルxを更新する必要があります。しかし、それはしないでください! x = 7が機能しないのはなぜですか?
ありがとうございます!
関数内で再宣言する 'x'は、グローバルなものをシャドウします。 –
ねえ、私はちょうど私の質問を更新しました。私はjsで良い経験をしています。だから私はscopingについてのアイデアを持っていると私はこの問題を解決する方法。しかし、私はちょうどx = 7が更新されない理由を知りたいですか? –
x = 7の後にローカルxを定義するので、x = 7はグローバルを更新し、コンパイラは次の行に移動します。しかし、x = 7はグローバルに更新されませんでした。これが私の主な関心事ですか? –