2019-12-30 seo达人
JavaScript基础知识——JS预解析
js代码是由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码时分为两步:1预解析、2代码执行。
预解析
预解析是指js引擎会把js里面所有的var与function提升到当前作用域的最前面。(这里的当前作用域包括:全局作用域与局部作用域)。
预解析可分为:变量预解析和函数预解析
变量预解析:就是把所有的变量声明提升到当前的作用域的最前面但是不提升赋值操作。如下例所示:
<script>
console.log(num); //结果为undefined
var num = 10;
</script>
//其实际执行过程为
var num;
console.log(num);
num=10;
函数预解析:就是把所有的函数声明提升到当期作用域的最前面 但是不包括调用函数。如下例所示:
var num = 10
fun();
function fun() { //结果是undefined
console.log(num);
var num = 20;
}
//其实际执行过程为
var num;
funtion fun() {
var num;
console.log(num);
num=20;
}
num = 10;
fun();