參考:https://segmentfault.com/q/1010000007406985/a-1020000007437795
摘要:
事實(shí)上爬坑,void
的返回值都是undefined
纠屋。 https://developer.mozilla.org...
在ES5之前,window
下的undefined
是可以被重寫的盾计,于是導(dǎo)致了某些極端情況下使用undefined會出現(xiàn)一定的差錯售担。
所以,用void 0
是為了防止undefined
被重寫而出現(xiàn)判斷不準(zhǔn)確的情況署辉。
注: ES5之后的標(biāo)準(zhǔn)中族铆,規(guī)定了全局變量下的
undefined
值為只讀,不可改寫的哭尝,但是局部變量中依然可以對之進(jìn)行改寫哥攘。
補(bǔ)充一下:非嚴(yán)格模式下,undefined是可以重寫的,嚴(yán)格模式則不能重寫献丑。