循环中的变量范围

时间:2014-07-11 08:44:57

标签: javascript

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

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

    }
}
console.log(counter);

如果范围中的变量可用于创建for loop,那么为什么我可以访问更高一级的变量,因为我通过放置这些括号来创建另一个范围?

3 个答案:

答案 0 :(得分:4)

循环没有自己的范围。

循环是一个块,块没有自己的范围;使用var创建的变量只能具有函数或全局范围。

正如其他人所指出的那样,在ES6中,您将能够使用带有let关键字的块范围变量。

答案 1 :(得分:4)

使用var关键字创建的变量具有功能范围(或全局范围,如果它们在函数外声明)。

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

答案 2 :(得分:2)

你错了,循环没有范围。