Object.is()和三等号操作符在JavaScript中有什么区别?
如果你想在JavaScript中进行相等性检查,有两个比较运算符,这在之前的一篇文章中有详细解释。
简单来说,双等号操作符(==
)只比较值,而三等号操作符(===
)比较值和类型。但是还有第三个选项,Object.is()
,它的行为与三等号操作符相同,除了NaN
、+0
和-0
的情况。
以下是一些示例,以便更加清楚:
{} === {}; // false
Object.is({}, {}); // false
1 === 1; // true
Object.is(1, 1); // true
+0 === -0; // true
Object.is(+0, -0); // false
NaN === NaN; // false
Object.is(NaN, NaN); // true