JavaScript隐式转换的理解

不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。

隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。

基本类型的转换

1.字符串加数字,数字就会转成字符串。

2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。

3.乘,除,大于,小于跟减的转换也是一样。

规则:

1.undefined等于null

2.字符串和数字比较时,字符串转数字

3.数字为布尔比较时,布尔转数字

4.字符串和布尔比较时,两者转数字

console.log(undefined==null)//true

引用类型的转换

1.对象转数字时,调用valueOf();

2.对象转字符串时,调用toString();

示例

console.log(0 == []); 
// true,   0 == [].valueOf(); -> 0 == 0;
console.log('0' == []);     
 // false,   '0' == [].toString(); -> '0' == '';
console.log(2 == ['2']);     
// true,    2 == ['2'].valueOf(); -> 2 == '2' -> 2 == 2;
console.log('2' == [2]);
// true,   '2' == [2].toString(); -> '2' =='2';
console.log([] == ![]);
//true,   [].valueOf() == !Boolean([]) -> 0 == false -> 0 == 0;

显示转换

console.log(Boolean({}))//true
console.log(Boolean([]))//true
console.log(Boolean(undefined))//false
console.log(Boolean(null))//false
console.log(Boolean(NaN))//false
console.log(Boolean(''))//false
console.log(Boolean(0))//false
console.log(Boolean({name:'yan'}))//true
console.log(Boolean([1,2]))//true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值