我见过许多人们嵌套for循环的例子,他们改变了增量变量(i,j,k)。
for(var i=0;i<array.length;i++){
for(var j=0;j<array.length;j++){
for(var k=0;k<array.length;k++){
}
}
}
所以我的问题是为什么不从for循环调用一个函数,在它内部有一个for循环不会导致增量变量的冲突?是因为javascript的功能范围本质还是碰撞而我只是没有遇到问题。例如:
for(var i=0;i<array.length;i++){
callFunction()
}
function callFunction(){
for(var i=0;i<arry.length;i++){
console.log(i)
}
}
答案 0 :(得分:4)
我不知道为什么阿德诺没有做出答案,但实际上它与范围有关。将其与:
进行比较function first() {
var i = 2;
console.log(i);
}
function second() {
var i = 3;
console.log(i);
first();
}
每个函数中的i
变量都包含在函数中,因此变量不会发生冲突。如果您使用了全局变量(i = 3
而不是var i = 3
),那么它们就会发生冲突。
如果您想了解javascript和范围规则的相关内容,请查看this question或以下链接: