摘要:函數(shù)聲明提升定義函數(shù)有兩種方式函數(shù)聲明函數(shù)表達(dá)式報(bào)錯(cuò),該函數(shù)不存在上述代碼出現(xiàn)不同的執(zhí)行結(jié)果,是因?yàn)楹瘮?shù)聲明的一個(gè)重要特征函數(shù)聲明提升,意思是函數(shù)聲明會(huì)被提升到頂部,即首先讀取函數(shù)聲明。
函數(shù)聲明提升
定義函數(shù)有兩種方式:
函數(shù)聲明
sayName("123");//123 function sayName(name){ alert(name); }
函數(shù)表達(dá)式
sayName("123");//報(bào)錯(cuò),該函數(shù)不存在 var sayName = function(name){ alert(name); };
上述代碼出現(xiàn)不同的執(zhí)行結(jié)果,是因?yàn)楹瘮?shù)聲明的一個(gè)重要特征:函數(shù)聲明提升,意思是函數(shù)聲明會(huì)被提升到頂部,即首先讀取函數(shù)聲明。
與之類似的還有變量聲明提升,即將變量的聲明提升到頂部。
var sayName = function(){ alert(1); }; function sayName(){ alert(2); } sayName();//?
上述代碼等價(jià)于:
function sayName(){ //函數(shù)聲明提升 alert(2); } var sayName;//變量聲明提升 sayName = sayName(){ //覆蓋函數(shù)聲明 alert(1); } sayName();//1
注:函數(shù)聲明提升先于變量聲明提升,且不會(huì)被變量聲明提升所覆蓋。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/107086.html
摘要:與執(zhí)行環(huán)境相關(guān)的變量對(duì)象中有執(zhí)行環(huán)境定義的所有變量和函數(shù)作用域鏈代碼在一個(gè)環(huán)境中執(zhí)行,便會(huì)創(chuàng)建變量對(duì)象的一個(gè)作用域鏈。 執(zhí)行環(huán)境 執(zhí)行環(huán)境是什么? javascript的解釋器每次開始執(zhí)行一個(gè)函數(shù)時(shí),都會(huì)為每個(gè)函數(shù)創(chuàng)建一個(gè)執(zhí)行環(huán)境(execution context)。 執(zhí)行環(huán)境定義了變量或者函數(shù)有權(quán)訪問的其他數(shù)據(jù),決定了他們各自的行為。 與執(zhí)行環(huán)境相關(guān)的變量對(duì)象(...
摘要:高程讀書筆記第五章類型創(chuàng)建實(shí)例的方式有兩種。第一種是使用操作符后跟構(gòu)造函數(shù),另一種方式是使用對(duì)象字面量表示法。 JS高程讀書筆記--第五章 Object類型 創(chuàng)建Object實(shí)例的方式有兩種。第一種是使用new操作符后跟Object構(gòu)造函數(shù),另一種方式是使用對(duì)象字面量表示法。 在通過對(duì)象字面量定義對(duì)象時(shí),實(shí)際上不會(huì)調(diào)用Object構(gòu)造函數(shù) 訪問對(duì)象屬性時(shí)可以使用點(diǎn)表示法和方括號(hào)表示法。...
摘要:高程讀書筆記第三章語法中的一切變量函數(shù)名和操作符都區(qū)分大小寫。建議無論在任何情況下都指定基數(shù)函數(shù)與函數(shù)類似。返回對(duì)象的字符串?dāng)?shù)值或布爾值表示。 JS高程讀書筆記--第三章 語法 ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。 不能把關(guān)鍵字、保留字、true、false和null用做標(biāo)識(shí)符。 嚴(yán)格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。在嚴(yán)格模式...
摘要:的理解函數(shù)與其他語言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型比如函數(shù)的形參有兩個(gè),但是調(diào)用函數(shù)傳入的參數(shù)可以寫一個(gè),三個(gè)或不寫參數(shù)對(duì)應(yīng)等,解析器都可以正常解析,這是因?yàn)橹袇?shù)在內(nèi)部是以一個(gè)數(shù)組形式來表示,故而不需要關(guān)系傳入?yún)?shù) ECMAScript function的理解 ECMAScript 函數(shù)與其他語言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型...
摘要:假如你只想支持及更高版本那么大可丟掉前面定義的那個(gè)函數(shù)而只用原生的實(shí)現(xiàn)。跳過這個(gè)函數(shù)中新增的代碼首先檢測(cè)原生對(duì)象是否存在如果存在則返回它的新實(shí)例。如果原生對(duì)象不存在則檢測(cè)對(duì)象。如果這兩種對(duì)象都不存在就拋出一個(gè)錯(cuò)誤。 XMLHttpRequest 對(duì)象 IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的 XHR 對(duì)象,在這些瀏覽器中創(chuàng)建 XHR 對(duì)象要像下...
閱讀 994·2023-04-25 15:42
閱讀 3584·2021-11-02 14:38
閱讀 2886·2021-09-30 09:48
閱讀 1420·2021-09-23 11:22
閱讀 3379·2021-09-06 15:02
閱讀 3186·2021-09-04 16:41
閱讀 607·2021-09-02 15:41
閱讀 2012·2021-08-26 14:13