什么是预解析 js引擎分为两步 :预解析和代码执行 预解析 :把所有的var,还有function提升到当前作用域的最前面(只声明,不赋值),预解析,分为变量域解析 变量提升和函数预解析函数提升 代码执行:按照代码顺序你从上往下执行 变量提升:把所有的变量声明提升到当前作用域的最前面,不提升赋值操作 **函数提升:**把函数的声明,仅仅只是声明提到作用域的最前面 预解析顺序 从外往内,一个作用域一个作用域提升