es6——var与let
var:
对于var而言,当使用他的时候会出现一些问题,有:
1.可以重复定义一个变量
var a = 10
var a = 20
console.log(a);
最后打印出来的是20
2.可以先使用再声明
console.log(a)
var a = 10;
3.for循环中使用,造成全局污染
for (var a = 0; a <= 10; a++) {
}
console.log(a);
可以打印出来
let:
对于let而言,let没有预解析,这就导致了无法像var中的第二种情况一样。
1.不能先声明再使用
2.不能重复定义一个变量
3.不会造成全局污染
4.拥有块级作用域,{}内会形成一个作用域
for (let a = 0; a <= 10; a++) {
}
console.log(a);
打印不出来