JavaScript教程:ES6前,不支持块级作用域

说明

在 ES6 之前,是没有块级作用域

使用 var 关键字声明的变量 不具备块级作用域 的特性,它在 {} 外依然能被访问到。

{ 
    var x = 2;
}
// 这里可以使用 x 变量
console.log(x)

ES6 可以使用 let 关键字实现 块级作用域

可能引发的问题

var i = 5;
for (var i = 0; i < 10; i++) {

}
// 这里输出 i 为 10。这是不合理的,在 for 内定义的变量i,干扰 外部的变量 i
console.log(i)

原文出处:/show_1IX3BO9WGqOp.html