javascript中加法操作符与减法操作符在字符串与数字相加时的区别

先来看两个例子:

var foo = "11"+2;
console.log(foo);//112
console.log(typeof foo);//string

var foo = "11"+2-"1";
console.log(foo);//111
console.log(typeof foo);//number

对于加法操作费用(+)的用法,如果操作数中含有字符串,那么就要应用如下规则:

1)如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来;

2)如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来。

如果有一操作数为对象,数字或者布尔值,则调用它们的toString()方法取得相应的字符串的值,然后再应用前面关于字符串的规则。对于Undefined和null,则分别调用String()方法并取得字符串"undefined"和“null”。


对于减法操作符(-),如果操作符中含有字符串,那么就要应用如下规则:

如果有一个操作符是字符串,布尔值,null或者undefined,则先在后台调用Number()函数将其转换为数值,然后再执行数和数字之间的减法运算。如果转换的结果为NaN,那么得到的结果就是NaN。

tips:Number()函数的转换规则中:如果是null值,则返回0;如果是undefined,则返回NaN.

所以,在上述例子中。“11”+2,执行的是将数字2转换成字符串再与“11”拼接,最后的结果为“112”,string类型;“112”-“1”,分别将“112”和“1”转换成数字,相减,结果为111,number类型。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值