我按照JavaScript运行:
var foo = function() {
var a = 3,
b = 5;
var bar = function() {
var b = 7,
c = 11;
a += b + c;
console.debug(d);
};
bar();
console.debug(c);
var d = 10;
};
foo();
显然,嵌套函数d
不知道bar
,外部函数c
不知道foo
。但在开发人员工具中,当我加载我的网页时,我会逐个获得两个不同的日志:
undefined
Uncaught ReferenceError: c is not defined
为什么两种情况的错误不同?在我看来,如果相应的变量不为他们所知或超出范围,两者都应抛出简单抛出的引用错误。
答案 0 :(得分:0)
变量c
在函数foo
返回时死亡; c
位于bar
的本地,因为使用了var
限定符。