前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >+号运算符涉及的隐式转换

+号运算符涉及的隐式转换

作者头像
用户9914333
发布2022-07-21 19:47:43
4080
发布2022-07-21 19:47:43
举报
文章被收录于专栏:bug收集bug收集

bug收集:专门解决与收集bug的网站

网址:www.bugshouji.com

+号运算符,会根据两边的类型不同,而进行不同的隐式转换。本文主要给大家介绍,当+号两边的类型不同时,到底会如何进行隐式转换

示例1

加号两边:都是Number类型, 直接想加

加号两边:都是String类型,字符串连接

加号两边:都是Boolean类型,转成数字,再相加

加号两边:都是Null类型,转成数字相加

加号两边:都是Undefined类型, 转成数字相同

结果如下图:

示例2

Number + String : 数据转成字符串, 然后进行连接

Number + Boolean : Boolean 转成数字,然后进行相加

Number + Null : Null 转成数字0, 然后进行相加

Number + undefined: undefined转成数字NaN, 然后进行相加

示例3

String + Boolean: Boolean会转成字符串true/false,然后进行连接

String + null : null 会转成字符串null,然后进行连接

String + undefined: undefined会转成字符串 undefined,然后进行连接

示例4

Boolean + undefined: 两者都转成number类型,在进行相加

Boolean + Null: 两者都转成number类型,在进行相加

Null + undefined: 两者都会转成Number类型,在进行相加

总结

当加号运算符时,String和其他类型时,其他类型都会转为 String;

其他情况,都转化为Number类型

注:

1、undefined 转化为Number是 为’NaN‘, 任何Number与NaN相加都为NaN。 2、其他运算符时, 基本类型都转换为 Number,String类型的带有字符的比如:'1a' ,'a1' 转化为 NaN 与undefined 一样。

3、NaN 不与 任何值相等 包括自身,所以判断一个值 是否为 NaN, 即用 "!==" 即可。 4、转换为 Boolean类型为 false 的有:null,0,'',undefined,NaN,false

参考:https://www.cnblogs.com/ihboy/p/6700059.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档