Javascript 嵌套函数作用域变量给出不同错误的原因
我正在运行以下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是
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
没有因为吊装而死亡。