課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
函數(shù)的聲明和函數(shù)表達式聲明的函數(shù)為什么會被前置????????
2016-10-18
源自:JavaScript深入淺出 6-2
正在回答
由于解析器在向執(zhí)行環(huán)境加載數(shù)據(jù)時,會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可用,所以存在函數(shù)聲明提升,對代碼求值的時候,js引擎在第一遍會聲明函數(shù)并將它們放到源代碼樹的頂部,所以即使調(diào)用函數(shù)的語句在聲明函數(shù)的前面也能正常執(zhí)行。但是對于函數(shù)表達式,它必須等到解析器執(zhí)行到它所在的代碼行,才會真正被解釋執(zhí)行。
1、函數(shù)的聲明會被前置,如:function foo(){}; 會初始化在一個vo變量對象里面,這個函數(shù)的值為:foo函數(shù)本身。2、函數(shù)的表達式會被忽略掉,更不會被前置,如:var a =function fpp(){};這里的fpp是一個函數(shù)表達式(因為他要是賦值給a)在這里初始化的時候會被忽略只保留變量a,且變量a的值初始化為undefined。
參照方法圖:
舉報
由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握
2 回答函數(shù)聲明和var聲明誰先被提前
1 回答javascript中函數(shù)一共分為3種:函數(shù)申明 函數(shù)表達式和構造函數(shù) 對嗎?
4 回答關于函數(shù)內(nèi)變量的聲明?
3 回答函數(shù)聲明不是可以立即調(diào)用的嗎
1 回答怎么理解函數(shù)表達式立即被調(diào)用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-02-23
由于解析器在向執(zhí)行環(huán)境加載數(shù)據(jù)時,會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可用,所以存在函數(shù)聲明提升,對代碼求值的時候,js引擎在第一遍會聲明函數(shù)并將它們放到源代碼樹的頂部,所以即使調(diào)用函數(shù)的語句在聲明函數(shù)的前面也能正常執(zhí)行。但是對于函數(shù)表達式,它必須等到解析器執(zhí)行到它所在的代碼行,才會真正被解釋執(zhí)行。
2016-10-19
1、函數(shù)的聲明會被前置,如:function foo(){}; 會初始化在一個vo變量對象里面,這個函數(shù)的值為:foo函數(shù)本身。
2、函數(shù)的表達式會被忽略掉,更不會被前置,如:var a =function fpp(){};這里的fpp是一個函數(shù)表達式(因為他要是賦值給a)在這里初始化的時候會被忽略只保留變量a,且變量a的值初始化為undefined。
參照方法圖: