簡體   English   中英

JavaScript `undefined` 與 `void 0`

[英]JavaScript `undefined` vs `void 0`

undefinedvoid 0之間到底有什么區別?

哪個是首選,為什么?

不同之處在於某些瀏覽器允許您覆蓋undefined的值。 然而, void anything總是返回真正的undefined

undefined = 1;
console.log(!!undefined); //true
console.log(!!void 0); //false

undefined具有正常的變量語義,即使是嚴格模式也無法修復,並且需要運行時查找。 它可以像任何其他變量一樣被隱藏,並且默認的全局變量undefined在 ES3 中不是只讀的。

void 0實際上是undefined的編譯時防彈常量,沒有查找要求。 這就像編寫nulltrue ,而不是查找變量值。 它開箱即用,沒有任何安全參數,而且編寫時間較短。 它在各方面都更好。

使用undefined 它比void(0)更廣為人知。

這里的括號是可選的, void 0void(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM