JavaScript'=='与‘===’的区别

相等运算符==

如果操作数据有相同类型,判断值是否相等,如果相等返回true,否则返回false。

如果操作数不同,按照这样的情况判断。

1、null和undefined相等;

2、其中一个是数字另一个是字符串,将字符串转换为数字再作比较;

number('123')=123;

3、其中一个是true,先转换成1(false转换为0)在做比较;

print(1==true),返回true

类型不等,true会先转换成数值 1,比较 1 == 1, 相等。

4、如果一个是对象,另一个是数字或字符串,则将对象转换为原始值;

valueof()或tostring()

5、其他情况返回false。

等同运算符===

如果操作数的类型不同,则不进行值的判断,直接返回false。

如果操作数据有相同类型,分下列情况来判断:

1、都是数字的情况下,如果值相同,则两者相同。

2、都是字符串的情况下,如果串值不同则不相等。

3、都是布尔值,均为true或false,则相等。

4、如果两个操作数引用同一个对象,则两者完全相同,否则不相等。

5、如果两个操作数均为null或undefined,则相同,否则不等同。

print(1===true)返回false

print(null===undefined)返回false

 

总结:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值