我记得变量是 Javascript 中的函数范围。但是,如果我在循环中重新定义局部变量,行为会怎样。一种常见的用例是嵌套循环。在下面的代码中,如果我将 j 更改为 i,则外部 for 循环在一次迭代后终止,因为外部范围内 i 的值与内部 for 循环相同。由于我使用 var,我期待(类似于其他语言)它在内部 fo 循环中重新定义。这是否意味着在 JS 中,无法在函数范围内重新声明和使用局部变量。
for (var i = 0, len = x.length; i < len; i++) {
...
for (var j = 0, len = y.length; j < len; j++) {
...
}
}