JS中相等判断,三等号===、双等号==、同值Object.is的区别详解

ES6以后有三种判等方法

  • 抽象(非严格)相等比较 (==)
  • 严格相等(全等)比较 (===)
  • 同值相等Object.is (ES6新特性)

使用哪一种比较全看你的业务需要,不过一般都用===Object.is

MDN中有很详细的介绍,这里直接拿过来用了

在做相同的比较时,三种方法的区别

  1. 双等号==

    将执行类型转换,

  2. 三等号

    不进行类型转换(如果类型不同, 只是总会返回 false)

  3. Object.is

    基本上与三等号相同,但是对于NaN和-0和+0进行特殊处理

    Object.is(NaN,NaN)将为 true,在=====中将是false

严格相等===

全等操作符比较两个值是否相等,两个被比较的值在比较前都不进行隐式转换。如果两个被比较的值具有不同的类型,这两个值是不全等的。否则,如果两个被比较的值类型相同,值也相同,并且都不是 number 类型时,两个值全等。最后,如果两个值都是 number 类型,当两个都不是 NaN,并且数值相同,或是两个值分别为 +0 和 -0 时,两个值被认为是全等的。

var num = 0;
var obj = new String("0");
var str = "0";
var b = false;

console.log(num === num)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值