“用 ===
,别用 ==
!” 然而,即使是看似完美的 ===
,在某些极端场景下也会暴露出它的问题。
现在,是时候了解一个新的成员了,它并非要彻底取代 ===
,而是为了填补其留下的空白,让“相等”这个概念在 JavaScript 中变得更加精确和符合直觉。
严格相等 ===
===
规定:不仅值要相等,类型也必须相同,它从不进行类型转换。
'1' === 1; // false,类型不同(string vs number)
true === 1; // false,类型不同(boolean vs number)
null === undefined; // false,类型不同
在 99% 的场景下,===
都表现得非常出色,它清晰、可靠、符合预期。然而,它在处理两个 JavaScript 中的“特殊公民”时,却显得有些力不从心。
===
的两个问题
1.NaN
的自我否定
NaN
&nb