隐式转换相关

隐式转换

javascript中,进行一些运算的时候,会自行对运算符两侧数值进行转换成同一类型就称为隐式转换

常见的隐式转换:+、-、*、/、%、==、> 、>= 、< 、<=、 ++、--、当遇到这些运算符时,两侧数据类型不一致时通常会进行隐式转换

规则:都会将两侧变量转换成Number类型,在进行运算,如果转化后Number类型不是数值(例:‘qwe’字符这种),则转换为NaN。

注:上面的+ 和==比较特殊,在进行+运算时,如果一侧有字符串不会转换为Number,而是进行字符串拼接console.log(1+'1') // 11

==运算符规则(只比对数值,不比对类型,因为会进行隐式转换)

1.undefined == null,结果是true。且它俩与所有其他值比较的结果都是false。 //查询大家解释 ,说是规则是这样。是规定

2.String == Boolean,需要两个操作数同时转为Number。

3.String/Boolean == Number,需要String/Boolean转为Number。

4.Object == Primitive,通过toPrimitive()方法得到一个返回值和Primitive比较。

5.Object == Object ,则比较左右两边所指向对象的地址是否相同,如 果相同则返回true,如果不同则返回false。

// ==

mdn文档:如何正确判断相等性

toPrimitive():方法说明

mdn文档:toprimitive()方法说明

注:当运算符两侧有一侧是object类型时,javascript会自动调用toPrimitive()方法,并优先调用valueOf()方法,如果得不到期望值则继续调用tostringi()方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值