javascript——对于js中全等判断和相等判断特殊情况的整理

本文梳理了JavaScript中全等`===`和相等`==`判断的特殊情况,包括对象与对象的比较、对象与基本数据类型的转换、NaN的特性、null和undefined的处理,以及对象转布尔值的情况。分析了在不同情况下,全等和相等判断的返回结果及其背后的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 对象与对象
var a=new String("abc");
var b=new String("abc");
if(a==b)
{
true;
}
else
{
false;
}

结果 ===> false

分析:这两个字符串内容虽然相同,但引用的不是同一个对象,故结果为false,使用全等判断(===)结果也是false

  • 对象与基本数据类型
var a="abc";
var b=new String("abc");
if(a==b)
{
true;
}
else
{
false;
}

结果 ===> true

分析:进行了隐式数据类型转换,但使用全等判断(===)时由于不能进行类型转换,结果为false

  • NAN不但不与其它数值相等,就算是两个NAN的等值判断,结果也是false
  • 对null值和undefined值做相等判断(==),结果为true
  • 对null值和undefined值做全等判断(===),结果为false
  • null值和undefined值在与其它数(如0、false、""等)做相等运算时不会进行类型转换,为false(例如undefined==0  false)
  • object类型转换为布尔类型结果必定为true
var a=new Boolean(false);
if(a)
{
true;
}
else
{
false;
}

结果 ===> true

通过函数调用方式获得的结果不是object类型,而是相应的内建类型,转换结果与字面意思一致

var a=Boolean(false);
if(a)
{
true;
}
else
{
false;
}

结果 ===> false

  • 双方均为undefined或者双方均为null,结果为true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值