变量提升JavaScript代码的执行是由浏览器中的JavaScript解析器来执行的。JavaScript解析器执行JavaScript代码的时候,分为两个过程:预解析过程和代码执行过程 预解析过程: 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值。把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用。先提升var,在提升function。 变量提升 变量提升定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升。函数提升JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面