讲一下let,var,const的区别?
- var
1.没有块级作用域,只有函数作用域
2.可以变量提升
3.是会被挂载到window上,
例:
window.a
console.log(a)
var a = 10
相当于在console.log上声明了一个var a = undefind
- let
1.有块级作用域
2.不允许重复声明
3.零时死去不能被挂载到window上 === 不存在变量声明
4.不影响作用域链
应用场景:以后声明变量使用let就对了
- const
1.声明必须赋初始值
2.不能重复声明
3.零时死去不能被挂载到window上
4.当被const常量声明,则不能被重复的赋值
5.有块级作用域
声明符一般为大写
注意:对象属性修改和数组元素变化不会触发const错误
应用场景:声明对象类型使用const,非对象类型声明选择let
例:
const a = 20
a=30是不可以的