js隐式类型转换

值类型之间的数据类型转换: 
(1)数字和字符串使用+运算符: 
数字和字符串如果使用+运算符进行操作,那么会将数字先转换为字符串,然后进行字符串连接操作:
(2)布尔值参与的+运算符操作: 
如果有布尔型参与,那么首先会将布尔值转换为对应的数字或者字符串,然后再进行相应的字符串连接或者算数运算。

(3)Null和Undefined参与的+运算符操作 
如果和数字进行计算,null会转化为0,undefined会转化成NaN

(4)减法操作: 
如果一个操作数为string、boolean、null、undefined,则在后台调用Number()函数,将其转换成数值,再进行操作。 
如果进行减法操作,那么两个操作数都会先被转换为数字,然后在进行算数运算:

注意:Null转换为0,Undefined转换成NaN
(4)==等性运算: 
undefined和null比较特殊,它们两个使用==运算符返回值是true。
其他值类型(Number、Boolean、Null、Undefined)进行比较的时候都会将运算数转换为数字

隐式类型转换,有时候,会隐藏一些错误的,比如,null会转换成0,undefined会转换成NaN。需要注意的是,NaN和NaN是不相等的(这是由于浮点数的精度决定的)
虽然,JavaScript提供了isNaN来检测某个值是否为NaN,但是,这也不太精确的,因为,在调用isNaN函数之前,本身就存在了一个隐式转换的过程,它会把那些原本不是NaN的值转换成NaN的,

使用不等于号(!==)来判断一个数是否等于自身,从而,可以检测到NaN了

// 拓展 类型加法操作表
Number + Number -> 加法
Boolean + Number -> 加法
Boolean + Boolean -> 加法
Number + String -> 连接
String + Boolean -> 连接
String + String -> 连接

字符串加法运算只是拼接 , 而减 , 乘 , 除 都是讲其转为数字进行运算 , 如果有字母返回NaN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值