循环中的变量作用域

Variable scope in loops

本文关键字:作用域 变量 循环      更新时间:2023-09-26

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

{
    for (var counter = 1; counter < 6; counter++) {
    }
}
console.log(counter);

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

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

ES6为块作用域变量引入了let关键字。

循环没有自己的作用域。

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

正如其他人指出的,在ES6中,您将能够通过let关键字使用块作用域变量。

你错了,循环没有作用域