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

本文详细介绍了JavaScript中的三种相等判断方式:非严格相等(==)、严格相等(===)以及ES6引入的同值相等(Object.is)。在类型转换、NaN处理以及零的区分上,这三种方式有显著区别。建议在不明确具体需求时,优先使用严格相等(===),避免使用非严格相等,对于特殊情况可以考虑使用Object.is。
摘要由CSDN通过智能技术生成

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、付费专栏及课程。

余额充值