0

我见过很多例子,人们嵌套了 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)
    }
}
4

1 回答 1

4

我不知道为什么 adeneo 没有把它作为答案,但它确实与范围有关。将其与以下内容进行比较:

function first() {
  var i = 2;
  console.log(i);
}

function second() {
    var i = 3;
    console.log(i);
    first();
}

每个函数中的i变量都包含在函数中,因此变量不会冲突。如果您使用了全局变量(i = 3而不是var i = 3),那么它们就会发生冲突。

如果您想要一些有关 javascript 和范围规则的材料,请查看此问题或以下链接:

于 2013-03-17T05:11:04.583 回答