次のjavascriptを実行したとき、b()のコンソールログが未定義に出力されることが予想されていました。 (私は名前を宣言しなかったので)。Javascriptコールスタック/実行コンテキストリファレンス
function b(){
console.log(name);
}
function a(){
var name = "rupesh";
b();
}
var name = "Demo";
a();
予想される出力:不定
実際の出力:デモ私はグローバル実行コンテキストは、JavaScriptの実行コンテキストに読んでいる
。実行コンテキストがグローバル実行コンテキストを探すことは言及されている。
私は正しく理解すると、関数a()と関数b()はスタック内で実行されます。それはどのように実行コンテキストに戻るのですか(データ構造の観点ではこれは起こりません)。
こんにちは。これがどのように機能するのか説明してください!
巻き上げ:
ただ全体像を表示するために、それはランタイムがあなたのコードを「見る」方法です。 http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html – Will