JavaScript隐式转换

JavaScript存在很多的隐式转换,当某些运算符被执行时,如果两边数据类型不一样,CPU就无法计算,系统内部自动将数据类型进行转换,这种无需由程序员完成的转换称为隐式转换

+号作为连接符时,将数据转成字符串

例如 通过 +'' 将数字10转为字符串'10'


    let num=10
    console.log(typeof(10+''));   //string

注意,当+号作为正号解析可以转成数据类型

例如

     let str ='10'
     let num=5
     console.log(typeof(+str));//number
     console.log(+str + num);//15

- * / 等会把数据转成数字类型

例如

       let str = '1234'
       let num =234
       let result =str - num
       console.log(result); //1000
       console.log(typeof(result));//number

==号 ,也可以进行隐式转换

  console.log('11' == 11);//true 字符串先转成数字再进行比较

所以比较两个数据是否完全相等时,强烈推荐使用 ===

  console.log('11' === 11);//false

1.对象和布尔值比较时,先将对象转换为字符串,然后转成数字,布尔值直接转成数字

例如

[] == true //false

[]转成“”,再转成数字0 ,true转成数字1,所以结果为false

2.对象和字符串比较时,对象转成字符串再进行比较

[1,2,3] =='1,2,3'//true

3.对象和数字比较,对象先转成字符串,再转成数字然后进行比较

[1]==1 //true

if()语句中的隐式转换

像空字符串'', undefined,null ,0等自动转成false

例如

 let name
  if(!name){
    console.log('666');
  }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值