哪位大神回復(fù)一下!
我剛才試了,我聲明一個變量var a;然后再繼續(xù)聲明function a(){};那么在控制臺會輸出typeof a 會是函數(shù),接下里我改了一下,var a=1;繼續(xù)輸出,此時a是number;繼續(xù)function a(){return 5;} ? 我強制輸出a();控制臺說a不是個函數(shù)。于是誰能解釋一下。是因為function a(){}只有聲明過程。沒有執(zhí)行過程嗎?我把a 用函數(shù)表達(dá)式輸出,此時才能返回a是個函數(shù)。
2016-04-28
是的,function a(){}只有聲明過程;
順序是這樣的:1.function a(){return 5;}進行函數(shù)聲明;
? ? ? ? ? ? ? ? ? ? ? ?2.var a被忽略;
? ? ? ? ? ? ? ? ? ? ? ?3.var a=1使a被賦值為1,并覆蓋掉了函數(shù)聲明,使a變成了number
然后強制輸出a()是執(zhí)行函數(shù)的語句,a不是函數(shù)當(dāng)然報錯了~
2016-07-31
這個我明白了