2019-12-30 seo達人
JavaScript基礎知識——JS預解析
js代碼是由瀏覽器中的JavaScript解析器來執(zhí)行的。JavaScript解析器在運行JavaScript代碼時分為兩步:1預解析、2代碼執(zhí)行。
預解析
預解析是指js引擎會把js里面所有的var與function提升到當前作用域的最前面。(這里的當前作用域包括:全局作用域與局部作用域)。
預解析可分為:變量預解析和函數預解析
變量預解析:就是把所有的變量聲明提升到當前的作用域的最前面但是不提升賦值操作。如下例所示:
<script>
console.log(num); //結果為undefined
var num = 10;
</script>
//其實際執(zhí)行過程為
var num;
console.log(num);
num=10;
函數預解析:就是把所有的函數聲明提升到當期作用域的最前面 但是不包括調用函數。如下例所示:
var num = 10
fun();
function fun() { //結果是undefined
console.log(num);
var num = 20;
}
//其實際執(zhí)行過程為
var num;
funtion fun() {
var num;
console.log(num);
num=20;
}
num = 10;
fun();