var声明变量的特点
var
在全局声明的变量会自动挂载到顶层对象window
上var
声明变量,存在变量提升的现象,var
会先将声明变量的操作放在作用域的顶部,之后再执行赋值等操作 因为代码存在变量提升,变量可以先使用再声明,造成代码可读性非常糟糕!var
可以重复声明变量
let声明变量
- 不存在变量提升,在初始化之前不能访问变量
- 不允许重复声明
let a2 = 66666; // var a2 = "hello"; console.log(a2); //报错 已存在标识符a2
-
块级作用域:花括号括起来 let声明变量
-
暂时性死区:块级作用域中已经声明了,变量就会绑定在这个区域
const声明变量
let
声明变量的特点,const
全都有const
声明的是一个常量,不可以被重新赋值const a = 1; a = 2;//Assignment to constant variable.
const
声明的常量,必须赋初始值