Javascript 嵌套函数作用域变量给出不同错误的原因

Javascript 嵌套函数作用域变量给出不同错误的原因,javascript,Javascript,我正在运行以下JavaScript: var foo=function(){ var a=3, b=5; var bar=函数(){ var b=7, c=11; a+=b+c; 控制台调试(d); }; bar(); 控制台调试(c); var d=10; }; foo()当函数foo返回时,变量c死亡c对于bar是本地的 因为c在功能范围内。使用var声明的任何内容在函数之外都不可用。它只在里面可用。看:被骗者应该解释一下。发生,并且实际声明了d,但没有在函数开头用值初始化,因为vars是

我正在运行以下JavaScript:

var foo=function(){
var a=3,
b=5;
var bar=函数(){
var b=7,
c=11;
a+=b+c;
控制台调试(d);
};
bar();
控制台调试(c);
var d=10;
};

foo()当函数
foo
返回时,变量
c
死亡<因为使用了
var
限定符,所以code>c
对于
bar
是本地的

因为
c
在功能范围内。使用
var
声明的任何内容在函数之外都不可用。它只在里面可用。看:被骗者应该解释一下。发生,并且实际声明了
d
,但没有在函数开头用值初始化,因为
var
s是作用域内的函数。因此,对于
bar
内部的
d
将得到未定义的参考错误。但是由于
c
只存在于
bar
中,因此它在外部永远无法访问。但是变量
d
是在函数
bar
定义完成后声明的。因此
d
对于
bar
功能应该同样死气沉沉(尚未开始使用)。不是吗?我没有投你的反对票。这个答案对于眼前的问题来说确实不完整。它没有解决主要问题。
d
没有因为吊装而死亡。