JS的预解析
JS代码是由浏览器中的JS解析器来执行的,JS解析器在运行JS代码的时候分为两步:预解析和代码执行。
1.JS引擎运行JS分为两步:预解析和代码执行。
●预解析:JS引擎会把 JS里面所有的 var还有 function提升到当前作用域的最前面。
●代码执行:按照代码从上往下的顺序执行。
2.预解析分为变量预解析(变量提升)和函数预解析(函数提升)
●变量提升:就是把所有的变量声明提升到当前作用域的最前面,不提升赋值操作。
●函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数。
预解析案例
案例一
//案例一
var num=10;
fun();
function fun(){
console.log(num);
var num=20;
}
//结果为undefined,相当于执行了:
var num;
function fun(){
var num