JS中的关系操作符与自动转型

  很多时候对数据操做时都会遇到数据转换,有的是显示转化,有的是隐式转化,即调用默认的规则进行数据转换,经常会把数据转换的方式搞混,于是就花了点时间做了个小小的总结:

  1. 一元操作符(--,++,-,+)作用在非数值时,会和Number()一样进行数据转换;(PS:这里的-,+表示的是正负,并不执行加减)
  2. 减法操做(-)作用在非数值时也是调用Number()进行转换,而加法(+)作用在String上则是转化成字符串与之拼接,遇到其他类型则调用toString()取得字符串再拼接(Boolean会转为0或1)
  3. ==,!=符号在进行比较是都会进行强制转型(Number()),然后再比较,有一个是数值则将另一个转为数值在比较,如果两个都是对象,则只有当它们指向同一个对象(指向同一地址)是才相等,同一个构造函数的两个实例是不等的,实例中继承原型中的对象属性可以相等:

  

 

  •   <,>,<=,>=,这几个操做符只要比较的两个值中有非数值时就会进行数据转换,如果有一个数值类型的,另一个就会试图转化(Number())成数值来进行比较
  • 除了==和!=,其他操作符作用在对象上都是先调用其valueof()取得数值,没有则调用toString();

转载于:https://www.cnblogs.com/cjw-ryh/p/6768908.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值