第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JavaScript中為什么找不到條件語(yǔ)句中定義的函數(shù)

JavaScript中為什么找不到條件語(yǔ)句中定義的函數(shù)

慕桂英3389331 2018-12-21 19:19:48
在Chrome中實(shí)驗(yàn)以下代碼:function f(){    console.log("outside f()");}+function (){    if(false){        function f(){            console.log("inside f()");        }    }    f(); // Uncaught TypeError: f is not a function}();在外部定義函數(shù)f,它輸出"outside f()",而在之后的IIFE中也定義了一個(gè)f,然后執(zhí)行這個(gè)f函數(shù),但是輸出Uncaught TypeError: f is not a function。但是,如果我把if條件改為true,則會(huì)輸出inside f()。我注意到,這個(gè)異常是TypeError類(lèi)型錯(cuò)誤,這說(shuō)明它確實(shí)找到了f這個(gè)變量,但是它不是一個(gè)函數(shù)類(lèi)型,這似乎表明在這個(gè)IIFE作用域中已經(jīng)存在一個(gè)f變量,它屏蔽了外部的f函數(shù)。我不明白這個(gè)機(jī)制到底是怎么回事。不是說(shuō)函數(shù)和變量會(huì)有一個(gè)提升過(guò)程嗎?此時(shí)無(wú)論if語(yǔ)句是什么,內(nèi)部的f應(yīng)該是能找到才對(duì),再不濟(jì)還可以按照作用域鏈上尋查找到外部定義的f函數(shù)呀?此時(shí)內(nèi)部莫名其妙多出一個(gè)名為f、值是undefined的變量是怎么回事?可以說(shuō)在代碼塊中定義一個(gè)函數(shù),就會(huì)多出一個(gè)與這個(gè)函數(shù)名相同的一個(gè)變量嗎?如果是變量提升我還能理解,函數(shù)提升我也能理解,但是函數(shù)卻以變量形式提升我就有點(diǎn)不明白了。
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 695 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)