相等全等运算符

相等全等运算符

相等运算符(==): 先转换再比较
全等运算符(===): 仅比较而不转换

类型不同比较时,相等运算符的转换规则

1.when 布尔值 == “other”, 布尔值 => 数值. false => 0, true => 1.
2.when 字符串 == 数值,字符串 => 数值.
3.when 对象 == “other”,对象 => 对象.valueOf() or 对象.toString()(转换成基本数据类型).

相等运算符比较时应该遵循的规则

1.null == undefined // true
2.要比较相等性之前,null,undefined不转换成其它值
3.比较两操作数中只要有NaN(not a number),就返回false
4.比较两操作数都是对象的时候,比较引用的对象是否相等

相关笔试面试题解析

1.[] == ![] // true
![],遇到!转换成boolean.[]是数组对象,转换成boolean值是true,再取反得到false.运用转换规则1,相等运算符右侧最终得到0.对左边操作数执行转换规则3,得到空字符串(""),再运用转换规则2,得到数值0.所以最终的比较为0 == 0,所以结果为true.

扩展

1.NaN == NaN // false NaN === NaN // false
2.判断操作数是否是NaN使用isNaN()或者Number.isNaN()
3.undefined === null // false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值