特性varletconst
作用域函数作用域或全局作用域块级作用域块级作用域
变量提升完全提升(声明和赋值)部分提升(只提升声明,未赋值)部分提升(只提升声明,未赋值)
重复声明可以在同一作用域重复声明不可以在同一作用域重复声明不可以在同一作用域重复声明
重新赋值可以重新赋值可以重新赋值不可以重新赋值(但对象属性可以修改)

变量提升:在底部声明或者赋值的变量,会自动移动到顶部,供下面使用这个变量,但值为undefined

reference