js加减乘除和双等号类型转换

加减乘除隐式类型转换

1.加减乘除能直接转换number的直接转换
否则先转换成string再转换成number(其实就是对象先valueof再tostring再转number)
2.字符串加法变成拼接都转换成字符串
3.null转number为0 undefined转number为NAN

console.log('12'+[])//12
console.log(String([]))//''
console.log(String([])=='')//true
console.log([]=='')//true
console.log(Number([]))//0
console.log('12'+12)//1212
console.log('12'+[1])//121
console.log(String([1]))//1
console.log('12'+[1,12])//121,12
console.log('12'+{})//12[object Object]
console.log('12'+{1:1})//12[object Object]
console.log(null+'1')//null1
console.log(undefined+'1')//undefined1
console.log(undefined+1)//NAN
console.log(null+1)//1
console.log(Number(undefined))//NAN
console.log(Number(''))//0
console.log(Number(null))//0
console.log(Number(false))//0
console.log(Number(null))//0
console.log(Number(true))//1
console.log(String(true))//true
console.log(true+1)//2
console.log(true+'1')//true1
console.log({}==[])//false
console.log(Number({}))

双等号隐式类型转换

1.number string object不同类型比较都转换成统一类型(可理解为number或string)再进行比较
2.相同类型比较直接比较值即可,注意object引用类型的值都是引用
3.null undefined 用双等号和其他类型都不相等 但是null和undefined彼此相等

console.log([] == [])//false
console.log('12' == 12)//true
console.log(1==true)//true
console.log(0==false)//true
console.log(0=='')//true
console.log(0==[])//true
console.log(0=={})//false
console.log(0==null)//false
console.log(0==undefined)//false
console.log(undefined==undefined)//true
console.log(null==null)//true
console.log(null==undefined)//true
console.log(null=={})//false
console.log(1.111=='1.111')//true
console.log([1]=='1')//true
console.log(false == '')//true
console.log(String({}))//[object Object]
console.log(isNaN({}))//true
console.log({}=='[object Object]')//true
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值