JavaScript中的预解析
一、什么是预解析
所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。
二、var预解析
var声明的变量在预解析的时候只是提前的声明
/*先解析var变量num
然后执行console输出
最后把10赋给num
*/
console.log("num=",num);
var num = 10;
三、function函数的预解析
function声明的函数在预解析的时候会提前声明并且会同时定义
/*
先解析fn函数的定义
然后执行console语句
*/
console.log("1+2+3+...+100=",fn());
function fn(){
var s = 0;
for(var i=1;i<=100;i++){
s += i;
}
return s;
}
四、var声明的变量和function声明的函数在预解析的区别
var声明的变量和function声明的函数在预解析的时候有区别,var声明的变量在预解析的时候只是提前的声明,function声明的函数在预解析的时候会提前声明并且会同时定义。也就是说var声明的变量和function声明的函数的区别是在声明的同时有没同时进行定义。