js预解析
1,预解析
js代码是由浏览器中的js解析器来执行的,
js解析器在运行代码的时候分为两步:预解析和代码执行。
过程:
1,js引擎会把js里面所有的var和function提升到当前作用域的最前面。
2,按照代码书写的顺序从上往下执行。
预解析过程:
分为变量预解析(变量提升)和函数预解析(函数提升)
2,变量预解析
变量预解析:就是把所有的变量声明提升到当前的作用域的前面,但并不会提升赋值。
console.log(num);
var num=10:
//结果输出的是 undefined
因为在预解析的过程中,先把num提升到前面,但是num的值并没有提升,所以返回的是没有赋值的num变量。
3,函数预解析
函数预解析:就是把所有的函数声明提升到当前作用域的前面,不调用函数。
注意:这里是把函数声明提升,表示函数的变量是按照变量预解析的过程进行。