function foo(a) {
function a() {
return 8;
}
return a();
y = 9;
}
console.log(foo() + " " + y);
这为变量y
提供了未定义的错误。
function foo(a) {
y = 9;
function a() {
return 8;
}
return a();
}
console.log(foo() + " " + y);
这会在浏览器控制台中打印8 9
。
如果我们声明一个没有var
关键字的变量,那么它就变成了全局变量。
为什么第一个功能不遵循这个想法?
答案 0 :(得分:0)
这是因为在第一个示例中,您在return
之前有一个y = 9
语句,因此永远不会达到分配,从而使其未定义。