閱讀下劃線的來源,我注意到使用void 0
而不是undefined
。我知道在某些瀏覽器中,未定義的內容可能會被覆蓋,並且在很多情況下,解決方法是在調用函數或者調用函數時忽略參數。實際上,爲了縮小目的,這樣做更合理,而不是使用void 0
。var undefined = void 0; vs jquery的關閉vs ...?
此外,jquery's aproach這個問題:
(function (window, undefined){
/* ... */
}(window));
似乎是在任何意義上更好。它比void 0
更具可讀性,可以進一步縮小,並可能提供一些微小的性能提升,如鏈接答案中所述。
好的,void 0在下劃線中出現了大約6次,在主幹中出現了大約9次,所以它沒有什麼區別。所以,我的問題是:是否有其他原因或特殊情況void 0
是可取的?
我認爲這可能與AMD和加載腳本有關,我並不十分了解這些腳本。另外,爲了提高可讀性,另一種方法是['var undefined = void 0;'](https://github.com/brainling/combobuilder/blob/7c7de6e9c58004425f2f775b96799ec8ba9fff2d/app/assets/javascripts/harmony.js# L9)在頂部。任何理由不這樣做? – spelufo
根據[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void),您不應該重新定義'undefined'。 MDN也表示寫'void 0'或'void(0)'就等於直接寫'undefined'。 –
我認爲「無效0」我只是比檢查typeof for'undefined'更直截了當。它也可以消除使用typeof來確保你沒有檢查名爲「undefined」的變量的需要。 –