Javascript for循环中的函数被另一个for循环调用

Javascript for loop in a function called by another for loop

本文关键字:for 循环 另一个 调用 Javascript 函数      更新时间:2023-09-26

我见过很多人嵌套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)
    }
}

我不知道为什么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和作用域规则的资料,请查看这个问题或这些链接:

  • https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Functions_and_function_scope
  • http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/