let是什么
let时es6新增的关键字,用来声明变量
let与var的区别
1.变量不能重复声明
使用var可以重复声明变量并且后面声明的变量会覆盖之前的,但是使用let之后便不可以,若重复声明便会直接报错。这样很好的保证了我们代码中变量的纯净,不会被污染
// 报错 Identifier 'star' has already been declared
let star = 1
let star = 2
// 不报错
var me = 2
var me = 4
console.log(me);
2.块级作用域
使用let声明的变量只能在当前代码块中使用,但是使用var声明的变量全局均可使用
{
let girl = '哈哈哈'
var boy = 'llll'
}
console.log(girl); // 报错 girl is not defined
console.log(boy); // 输出 1111
3.不存在变量提升
js变量提升:JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
使用var声明的变量会被提升,浏览器会在执行所有代码之前先将var定义的变量提取出来,所以就可以在定义之前去使用,但是let不行
console.log(song); // undefined
console.log(sun); // 报错 Cannot access 'sun' before initialization
var song = '恋爱达人'
let sun = '太阳'