在 JavaScript 中,== 是相等运算符,用于比较两个值是否相等。而 Object.is() 是一个方法,用于比较两个值是否完全相同。
区别如下:
- 数据类型比较:== 运算符在比较两个值之前会进行类型转换,而 Object.is() 不会进行类型转换。
console.log(1 == '1'); // true,进行了类型转换 console.log(Object.is(1, '1')); // false,没有进行类型转换
- NaN 的比较:== 运算符认为 NaN 与任何值都不相等,而 Object.is() 认为 NaN 与 NaN 相等。
console.log(NaN == NaN); // false console.log(Object.is(NaN, NaN)); // true
- 0 和 -0 的比较:== 运算符认为 0 和 -0 相等,而 Object.is() 认为它们是不同的。
console.log(0 == -0); // true console.log(Object.is(0, -0)); // false