我在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'是全局的(並且這兩個函數都是相同的變量) –