let为ES6 新添加申明变量的命令,它类似于var ,但是有以下不同: var申明的变量,其作用域为该语句所在的函数内,且存在变量提升现象let申明的变量,其作用域为该语句所在的代码块内,不存在变量提升,let不允许重复申明 变量提升的解释:(JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。) 参考资料: https://www.cnblogs.com/52fhy/p/5117267.html