JavaScript基礎(chǔ)知識(shí)——JS預(yù)解析

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();




分享本文至:

日歷

鏈接

個(gè)人資料

存檔