实例分析js中的隐式转换

隐式转换
  • 隐式转换的规则

    1. 转换为String类型:+ (字符串连接符)
    2. 转换为Number类型: ++/–(自增自减)+、-、*、/、%(算术运算符)>、 < 、>= 、<=、 == 、!=、 === 、!=== (关系运算符)
    3. 转换为boolean类型:!(逻辑非运算符)
  • 隐式转换例子

    1. 字符串连接符与算术运算符隐式转换规则混淆
     console.log(1+"true");//1true
     分析:Number类型的数据与String类的数据用+连接此时+为字符串连接符号,将1用toString方法转换为String类型数据连接,所以为1true
     
     console.log(1+true);//2
     分析:Number类型数据与非字符类型的数据用+连接,将其他类型的数据调用Number方法转换后相加,true为1所以1+1 = 2
     
     console.log(1+undefined);//NaN
     分析:undefined转换为数字类型的数据为NaN类型的数据,任何与NaN运算的数据结果都为NaN
     
     console.log(1+null);//1
     分析:null转为数字类型的数据为0,0+1 = 1
  1. 关系运算符:会把其他数据类型转换成number之后再比较关系
     console.log("2">10);//false
     分析:当Number类型的数据与String类型的数据进行关系运算将String类型的数据转换为Number类型的数据运算, 2 < 10  所以为 false
     
     console.log("2">"10");//true
     分析:当两个String类型的数据进行关系运算时,同时转换为Number类型的数据进行比较,但是这个Number类型的数据为字符串对应的unicode编码,使用Str.charCodeAt()来获取。
     "2" => 50 	"10" => 49  50 > 49 所以为 true
     
     console.log("abc">"b");//false
     console.log("abc" > "aab"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值