[英]JavaScript `undefined` vs `void 0`
undefined
和void 0
之間到底有什么區別?
哪個是首選,為什么?
不同之處在於某些瀏覽器允許您覆蓋undefined
的值。 然而, void anything
總是返回真正的undefined 。
undefined = 1;
console.log(!!undefined); //true
console.log(!!void 0); //false
undefined
具有正常的變量語義,即使是嚴格模式也無法修復,並且需要運行時查找。 它可以像任何其他變量一樣被隱藏,並且默認的全局變量undefined
在 ES3 中不是只讀的。
void 0
實際上是undefined
的編譯時防彈常量,沒有查找要求。 這就像編寫null
或true
,而不是查找變量值。 它開箱即用,沒有任何安全參數,而且編寫時間較短。 它在各方面都更好。
使用undefined
。 它比void(0)
更廣為人知。
這里的括號是可選的, void 0
、 void(0)
和void (0)
是等效的。 void
是一個具有從右到左結合性的一元運算符,因此值放在它的右側:
void <VALUE>
。
對於第二個問題,您需要直接使用undefined
,同時避免不需要的操作數評估來檢索相同的undefined
值。
參考中的更多信息: https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.