==、=== 和 Object.is() 的区别

== 和 === 的区别

== 和 === 的最大区别就是前者不限定类型而后者限定类型。如下例,如果想要实现严格相等(===),两者类型必须相同。

 

=== 和 Object.is() 的区别

Object.is() 的行为与 === 基本一致,但有两处不同:

  a、+0 不等于 -0;

  b、NaN 等于自身。

console.log(NaN == NaN) //false
console.log(Object.is(NaN, NaN)) //true

console.log('----------------')
console.log('0' == 0) //true
console.log('' == 0) //true
console.log(0 == false) //true

console.log('----------------')
console.log(null == '0') //false
console.log(null == 0) //false
console.log(null == '') //false
console.log('' == '0') //false
console.log(Object(+0, -0)) //[Number: 0]

console.log('----------------')
console.log(null == undefined) //true

console.log('----------------')
var str1 = 'abc'
var str2 = 'abc'
console.log(Object.is(str1, str2)) //true

 

posted @ 2022-05-07 20:12  RHCHIK  阅读(38)  评论(0编辑  收藏  举报