前端面试题--等号的隐式转换

首先要记住JS中一共有6种false值:

0、NaN、“”、false、null、undefined


隐式类型转换的规则

1.字符串和数字做相等比较

2.布尔值和字符串比较

3.当布尔值和数字之间比较

以上三种情况都往数字类型

10 == "10" //true

true == 1 //true
true == "1" //true
true == "true" //false ("true"转为数字是NaN) 

4.在==中,null和undefined是相等的(不会进行类型转换)

let a = null;
let b;
console.log(a == b); //true

5.对象数据类型VS基础数据类型

对象首先要获取自身的valueOf,再toString

[] == ![] //true
{} == !{} //true

[ ] == ![ ] => [ ] == false => " " == false => 0 == 0    √

6.对象数据类型VS对象数据类型

[] == [] //false
{} == {} //false
[] === [] //false
{} === {} //false

[] !== [] //true
{} !== {} //true

比较地址值

写[ ]实际上是 new Array([ ])的语法糖,是一种简化写法

完整判断格式  new Array([ ]) ==  new Array([ ])

并且,即使是二连等也是比较地址值,不会做类型转换,所以为×

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值