JavaScript教程:var缺点:重复声明、定义变量之前访问变量、没有块作用域

缺点

可以重复声明

var i = 1;
var i = true;
console.log(i)

执行结果:

true

定义变量之前访问变量

先访问变量,后定义变量,程序不报错,如下:

console.log(i)
var i = 10

执行结果:

undefined

如果注释掉 var i = 10,就会报错

没有块作用域

function test(){
    for(var i = 0;i<10;i++){
        var x = 10
    }
    // var声明的变量x,其作用域是整个函数,所以在for()语句外面也能访问变量x
    console.log("x的值是:",x)
}
test()

如何避免缺点

使用 let 关键字声明变量


原文出处:/show_1IX3mKnm5F8z.html