传递的变量值我写了下面的代码有两个功能a()
和b()
。为什么这里正在
功能a()
具有循环如下所示,并且循环内它调用函数b()
。问题在于第一个函数的循环计数器从b()
获取其值,然后停止。这两个函数之间没有值传递,它们唯一共同的就是变量的名字。
谁能解释究竟发生在这里?
根据我的理解,他们都应该有自己的副本x
,除非我声明x
是全球性的。
http://jsfiddle.net/rahulkadukar/s2gs9j05/
a();
function a() {
for (x = 0; x < 4; x++) {
console.log(x);
b();
console.log(x);
}
}
function b(){
for (x = 0; x < 4; x++) {
//Do nothing
}
}
上述功能的输出是
这就是为什么你应该在严格模式下始终运行,因为它会将此作为一个作为尝试使用未声明的变量的错误是严格模式中的错误,而不是隐式创建全局变量。 – jfriend00 2014-11-02 06:33:16