教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是預解析?JavaScript變量預解析和函數(shù)預解析

更新時間:2023年07月18日10時46分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

JavaScript 代碼是由瀏覽器中的 JavaScript 解析器來執(zhí)行的。JavaScript 解析器在運行 JavaScript 代碼的時候分為兩步:預解析和代碼執(zhí)行。

預解析:在當前作用域下, JS 代碼執(zhí)行之前,瀏覽器會默認把帶有 var 和 function 聲明的變量在內(nèi)存中進行提前聲明或者定義。

代碼執(zhí)行: 從上到下執(zhí)行JS語句。

預解析只會發(fā)生在通過 var 定義的變量和 function 上。學習預解析能夠讓我們知道為什么在變量聲明之前訪問變量的值是 undefined,為什么在函數(shù)聲明之前就可以調(diào)用函數(shù)。

預解析也叫做變量、函數(shù)提升。變量提升變量的聲明會被提升到當前作用域的最上面,變量的賦值不會提升。

console.log(num);  // 結果是多少?
var num = 10;      // ?

函數(shù)提升: 函數(shù)的聲明會被提升到當前作用域的最上面,但是不會調(diào)用函數(shù)。

fn();
function fn() {
    console.log('打印');
}

解決函數(shù)表達式聲明調(diào)用問題,參考以下代碼。

fn();
var  fn = function() {
    console.log('想不到吧');
}

0 分享到:
和我們在線交談!