JavaScript中的预解析 预解析:JavaScript代码是由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码的时候分为两步∶预解析和代码执行。我们js引擎运行js分为两步:预解析代码执行 (1) 预解析 js引擎会把js里面所有的 var 还有 function 提升到当前作用域的最前面。 (2)代码执行按照代码书写的顺序从上往下执行。预解析分为变量预解析(变量提升)和函数预解析(函数提升) (1)变量提升就是把所有的变量声明提升到当前的作用域最前面,不提升赋值操作。 (2)函数提升就是把所有的函数声明提升到当前作用域的最前面不调用函数。举例如下 变量提升 console.log(num); // undefined var num = 10; // 相当于执行了以下代码 var num; console.log(num); num = 10; 函数提升 fn(); function fn() { console.log(11); } 变量提升,但是不赋值 fun(); // 报错 var fun = function() { console.log(22); } //相当于执行了以下代码var fun; fuh(); fun = function() i console.log(22); }