2019-12-30 seo達(dá)人
JavaScript基礎(chǔ)知識(shí)——JS預(yù)解析
js代碼是由瀏覽器中的JavaScript解析器來(lái)執(zhí)行的。JavaScript解析器在運(yùn)行JavaScript代碼時(shí)分為兩步:1預(yù)解析、2代碼執(zhí)行。
預(yù)解析
預(yù)解析是指js引擎會(huì)把js里面所有的var與function提升到當(dāng)前作用域的最前面。(這里的當(dāng)前作用域包括:全局作用域與局部作用域)。
預(yù)解析可分為:變量預(yù)解析和函數(shù)預(yù)解析
變量預(yù)解析:就是把所有的變量聲明提升到當(dāng)前的作用域的最前面但是不提升賦值操作。如下例所示:
<script>
console.log(num); //結(jié)果為undefined
var num = 10;
</script>
//其實(shí)際執(zhí)行過(guò)程為
var num;
console.log(num);
num=10;
函數(shù)預(yù)解析:就是把所有的函數(shù)聲明提升到當(dāng)期作用域的最前面 但是不包括調(diào)用函數(shù)。如下例所示:
var num = 10
fun();
function fun() { //結(jié)果是undefined
console.log(num);
var num = 20;
}
//其實(shí)際執(zhí)行過(guò)程為
var num;
funtion fun() {
var num;
console.log(num);
num=20;
}
num = 10;
fun();
藍(lán)藍(lán)設(shè)計(jì)的小編 http://m.820esy.cn