1.定义:代码是由浏览器中的Javascript解析器执行,javascript解析器在运行javascript代码的时候分为两步:域解析和代码执行。

    1. 预解析js引擎会把js里面所有的var 还有function 提升到当前作用域的最前面
    2. 代码执行 按照代码书写的顺序从上往下执行。

    2.预解析分为 变量预解析(变量提升)和函数域解析(函数提升)。
    1.变量提升:就是把所有的变量声明提升到当前的作用域最前面,不提升赋值操作。
    2.函数提升: 就是把所有的函数声明提升到当前作用域的最前面,不调用函数。