什么是变量提升? JavaScript引擎的工作方式是,先解析代码,获取所有的声明,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 关于声明提升是指:js在解析的时候总是会将var, function这类关键词的声明语句提升至该作用域的最顶部(注意:这里只会提升声明部分)。 变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。 什…