js 变量提升: 函数内的所有用var 声明的变量都会提升到函数的第一行进行声明,此操作将会覆盖函数外的全局变量的声明。 例如 function a(){ console.log(a); var a = 0; console.log(a); } 程序会在控制台打印 undefined 0 实际上这段代码相当于 function a(){ var a ; console.log(a); a = 0; console.log(a); } js let关键字: js内用var声明或者直接定义会有一些变量提升的奇奇怪怪的特性,使用let使js的变量的作用域更像c/java的变量作用域。