JavaScript 提供三种不同的值比较运算:
==
叫做相等运算符,===
叫做严格运算符。
==
:先隐式类型转换,再判断值是否相等
===
:直接判断 类型 + 值 是否相等
==
表示只要值相等即可为真,而===
则要求不仅值相等,而且也要求类型相同。
==
嗯,很奇妙的==
,给我带来了一些反直觉的结果
===
nice,和符合我们直觉的结果
所以说:一般推荐在 JavaScript 中优先使用 ===
,以避免潜在的错误,而且很符合我们的直觉何乐而不为呢?
Object.is() 是一个用于比较两个值是否相同的方法,它在某些情况下比 === 更准确。以下是 Object.is() 的主要特点和用法:
特点:
NaN
被视为相等
+0
和 -0
被视为不想等
与 ===
的比较
Object.is() 更严格,它处理一些 ===
不处理的特殊情况。
对于一般的比较,=== 更加常用,但在需要处理 NaN 和 +0/-0 的情况下,Object.is() 更加可靠。
当需要精确比较对象、数组或者处理特殊值时,使用 Object.is() 是一个很好的选择。
总的来说,Object.is() 提供了一种更精确的方式来比较值,特别是在处理 JavaScript 中的一些特殊情况时。
参考: