Object.is() 与比较操作符 “===”、“==” 的区别?

97 阅读1分钟

image.png

🎉Object.is()

  • Object.is() 是一个 ES6 中引入的方法,用于检查两个值是否严格相等。
  • 它与 === 运算符的行为类似,但有一些特殊情况下的区别。
  • Object.is() 方法在比较时对于 NaN 和 -0(负零)有特殊的处理方式,这些情况下 Object.is(NaN, NaN) 会返回 true,而 Object.is(-0, 0) 会返回 false。

🎊"==="

🎉

  • 严格相等运算符 === 用于比较两个值是否严格相等,即类型和值都相等。
  • 与 Object.is() 方法类似,=== 运算符也会将 NaN 和 -0 视为不相等。

🎑"=="

  • 相等运算符 == 用于比较两个值是否相等。如果两个值的类型不同,它会尝试将它们转换为相同的类型,然后再进行比较。
  • 这种类型转换可能会导致一些意想不到的结果,因此在大多数情况下建议使用严格相等运算符 === 来避免类型转换带来的问题。

🎟️总结

总的来说,推荐在比较值时优先使用" === "运算符,因为它会避免类型转换带来的问题,并且更符合直觉。如果你需要特别处理 NaN 和 -0 的情况,可以考虑使用 Object.is() 方法。

image.png