以前,我们都是通过var来申明变量,es6对声明进行了拓展。
var声明
1 | var a="webwuyou" |
var声明的是全局变量,1
2
3
4
5var a=2;
{
var a=3;
}
console.log(a);//3
let局部声明
1 | var a=2; |
上面两个例子说明let是声明局部变量,let只在区块内起作用,块级作用域外部是不能调用的。
let主要是防止数据污染的
1 | for(var i=0;i<10;i++){ |
这个时候,循环体外的i变量被污染了,如果在循环外再使用i的话,就会出现问题。
如果这个时候使用let声明,就可以解决这个问题
1 | for(let i=0;i<10;i++){ |
这个时候,在循环体外再使用i就会报错,提示i没有undefined
const声明常量
const声明一个常量,声明以后,不再允许修改了1
2
3const a="webwuyou";
a="com"
console.log(a)
声明常量以后,再去赋值,就会报错了