缺点
可以重复声明
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 关键字声明变量