判断对象相等的方法

13 篇文章 2 订阅
12 篇文章 3 订阅

在JavaScript中,如果我们想要判断两个对象之间是否相等,有下面的几种方法:

  1. 采用相等运算符(==)
  2. 采用严格相等运算符(===)
  3. 采用ES6 中的 Object.is() 方法。
先来说说第一种方法:
      采用相等运算符(==)会认为大致相等的两个对象(值)相等。具体来说就是像下面这样
let a = 1;
let b = "1"
let result = (a == b);
//result 的值是true。
      由于相等运算符(==)在运算时,会进行数据类型的转换。所以判断的并不严格。
再让我们来看看第二种方法:
      采用严格相等运算符(===)判断是否相等,与(==)不同,严格相等运算符(===)不会进行类型转换,所以,不会出现上面出现的情况,但是在极端情况下,也会有出乎人意料的结果,例如:
  •        NaN与NaN是不相等的。
  •        +0 与 -0 是相等的。
       在大多数系统里,这样的结果是被人们所接受的,但是在某些应用在数学领域里的系统中,这样做是不严格的,所以ES6中在Object方法中添加了内置方法is(),is的行为和(===)相同,唯独两点不同:1. NaN 等于NaN ,2. +0 不等于 -0 。
      Object.is()用法如下:
Object.is('foo','foo'); //true
Object.is('1',1); //false
Object.is(+0,-0); //fasle
Object.is(NaN,NaN); //true



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值