JavaScript中的var与作用域:
参考:博客园:程序壕
var具有函数级作用域,使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境;在with语句中,最接近的环境是函数环境。
如果初始化变量时没有使用var声明,该变量会自动被添加到全局环境。
关键字var和let的区别:
参考:CSDN:一米阳光zw
变量提升也叫与处理机制,ES6中的let没有变量提升
变量提升:
参考:菜鸟教程
var变量提升,提升的是变量的声明,没有提升变量的初始化,所以未执行初始化语句时变量值为undefined