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

40 阅读1分钟

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

  • ==

相等运算符(==)检查其两个操作数是否相等,返回一个布尔值结果。与严格相等运算符(===)不同,它会比较不同类型的操作数,并尝试强制类型转换。

1 == 1  // true
'1' == 1  //true
0 == false  //true
  • ===

严格相等运算符(===)会检查它的两个操作数是否相等,并且返回一个布尔值结果。与相等运算符不同,严格相等运算符总是认为不同类型的操作数是不同的。

1 === 1  // true
'hello' === 'hello'  // true
'1' === 1  //false
0 === false  // false
  • Object.is

Object.is()  方法判断两个值是否为同一个值 一般情况下和三等号的判断相同,它处理了一些特殊的情况,比如 -0 和 +0 不再相等,两个 NaN 是相等的。