我有点困惑http://jsfiddle.net/
{
for (var counter = 1; counter < 6; counter++) {
}
}
console.log(counter);
如果范围中的变量可用于创建for loop
,那么为什么我可以访问更高一级的变量,因为我通过放置这些括号来创建另一个范围?
答案 0 :(得分:4)
循环没有自己的范围。
循环是一个块,块没有自己的范围;使用var
创建的变量只能具有函数或全局范围。
正如其他人所指出的那样,在ES6中,您将能够使用带有let
关键字的块范围变量。
答案 1 :(得分:4)
使用var
关键字创建的变量具有功能范围(或全局范围,如果它们在函数外声明)。
ES6为块范围变量引入了let
关键字。
答案 2 :(得分:2)
你错了,循环没有范围。