的Javascript范围
问题描述:
我在Javascript类似于下面的代码的东西:的Javascript范围
func1() {
for(i = 2; i < 5; i ++) {
console.log(i);
func2(i);
}
}
func2(x) {
for(i = 100; i < 200; i ++) {
do something
}
}
显然,输出为我的这个方案是用2一个单行,但它的工作,如果我例如,将其中一个for循环的索引名称从i更改为ii。
这是JavaScript中的预期行为,我在func1 for循环中实际更改为100后第一次调用func2?
如果这是真的有什么办法解决这个问题,而不是命名每个索引不同?当有很多函数调用嵌套时,这是非常烦人的。
答
在哪里'我'宣布?它的范围是什么? –
此代码中的'i'是全局的(并且这两个函数都是相同的变量) –