2 回答

TA貢獻1851條經(jīng)驗 獲得超5個贊
問題是缺乏澄清。如果您是為自己編寫代碼,那很好,因為您確切地知道自己在做什么。但是,如果貢獻者找到此代碼,他們可以:
不知道
==
在null
/的情況下如何工作undefined
知道它是如何工作的,但不知道使用是否是故意的(如果你真的想同時檢查
null
orundefined
,或者你只想檢查null
但 used==
)
代碼應(yīng)該是清晰的,因此您經(jīng)常會發(fā)現(xiàn)程序員在此檢查之前添加注釋以指定是的,他們知道自己在做什么,是的,這是故意的。
最終你厭倦了它并開始使用myvar === null || myvar === undefined
.
它更冗長,但更清晰,并且不會產(chǎn)生誤解。
我注意到的另一件事是為此類事物創(chuàng)建自定義功能,例如isNil(myvar)
,盡管冗長,但我更喜歡檢查這兩個值。

TA貢獻1796條經(jīng)驗 獲得超10個贊
==
有非常具體的規(guī)則,通常不推薦,因為這些規(guī)則不直觀。如果您已經(jīng)記住了與其行為相關(guān)的規(guī)則,我只會寬恕使用它,就像所有其他可能不得不處理您的代碼的開發(fā)人員一樣(大多數(shù)人沒有)。
在這種情況下,a == null
返回true
ifa
是null
, undefined
, or 之一document.all
,但不返回其他 4 個錯誤的 JS 值(MDN,包括為什么 document.all 是錯誤的)。因此,除非您希望它匹配document.all
,否則我會使用===
.
此外,===
在所有地方使用會增加代碼的一致性。
添加回答
舉報