我有一些与此类似的JavaScript代码:
for (i = 0; i < numTimes; i++) {
DoStuff();
}
function DoStuff() {
for (i = 0; i < 100; i++) {
console.log(i);
}
}
我发现第二次调用
DoStuff()
时,循环中i
的值从1开始。我认为这是由于变量作用域在JS中起作用的方式引起的。除了在DoStuff()
函数中更改变量名称之外,解决此问题的最干净方法是什么,有人可以解释此行为吗?编辑:感谢您的答复。看来JS具有“词汇范围”而不是“块范围”。这就是我在这里看到的吗?有人可以用新手解释什么词汇范围吗?
最佳答案
for (var i = 0; i < numTimes; i++) {
DoStuff();
}
function DoStuff() {
for (var i = 0; i < 100; i++) {
console.log(i);
}
}
关于javascript - JavaScript中变量的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6600519/