1.重复声明
重复声明:已经存在的变量或常量,有声明一遍。var 允许重复声明,但let 与const不允许
2.变量提升
var会提升变量的声明到当前作用于的顶部
let与const 不存在变量的提升
养成好的编程习惯,所有的变量与常量都需要先声明在使用
3.暂时性死区
暂时性死区 只用let与const有
只要作用域内存在let const 他们所声明的变量或者常量就自动“绑定”这个区域,不在受到外部作用域的影响
4.window对象的属性与方法
全局作用域中,var 声明的变量、通过function 声明的函数,会自动变成window对象的属性或方法,而let与const声明的不会。
5.块级作用域
什么是块级作用域?变量或常量的作用范围
var 没有块级作用域,典型的用法可以看下面的案例。
let/const 有块级作用域
作用域链:内层作用域–>外层作用域–>…–>全局作用域
有哪些块级作用域