当我执行下面的JavaScript时,我期待b()的控制台日志打印undefined。 (因为我没有声明姓名)。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-Histing.html – Will