我有点困惑http://jsfiddle.net/

{
    for (var counter = 1; counter < 6; counter++) {

    }
}
console.log(counter);

如果在作用域中可以使用来自循环的变量,那么就创建了for loop,那么为什么我可以访问一个更高级别的变量,因为我通过在这些括号中创建了另一个作用域?

最佳答案

使用var关键字创建的变量具有函数作用域(如果在函数外部声明,则为全局作用域)。

ES6为块范围变量引入了let关键字。

关于javascript - 循环中的可变范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24693595/

10-15 04:08