在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ js函數(shù)聲明和var變量聲明提前的迷惑

js函數(shù)聲明和var變量聲明提前的迷惑

實(shí)例1.
clipboard.png

運(yùn)行結(jié)果為: test2
迷惑:函數(shù)聲明的優(yōu)先級(jí)高于變聲聲明的優(yōu)先級(jí),那么為什么運(yùn)行結(jié)果不是undefined呢,

實(shí)例2.
clipboard.png

運(yùn)行結(jié)果為:12;
可以理解為如下嗎?

clipboard.png

在犀牛書中3.9節(jié)最后一段落,重復(fù)的聲明和遺漏的聲明中,第一句話是這樣寫的:
使用var語(yǔ)句重復(fù)聲明變量是合法且無(wú)害的。如果重復(fù)聲明帶有初始化器,那么這就和一條簡(jiǎn)單的賦值語(yǔ)句沒(méi)什么兩樣。

那么請(qǐng)問(wèn),實(shí)例2該怎么理解呢

誰(shuí)來(lái)為我揭開這層紗?

回答
編輯回答
大濕胸

1.引擎在處理var語(yǔ)句時(shí),若當(dāng)前作用域內(nèi)存在同名變量,則會(huì)跳過(guò)創(chuàng)立變量步驟,直接進(jìn)行初始化操作。因此在上面已經(jīng)創(chuàng)立tes函數(shù)的情況下,var tes這句話相當(dāng)于沒(méi)有任何作用。

2.原因同1。而且犀牛書解釋得很清楚了,第二條var bb沒(méi)有初始化器,因此連僅剩的賦值功能也不存在了

2017年3月23日 04:25