JS中的+操作符

JS中的+操作符

说明: 二元操作符+ 用于计算数值操作数的和 或者 拼接字符串操作数

1 + 2 // => 3
"hello" + "world" // => "hello world"
"1" + 2 // => "12" 

如果两个操作数都是数值或都是字符串, +操作符执行后的结果自不必说. 但除开这两种情况之外的任何情况, 都会涉及到类型转换, 而实际执行的操作取决于类型转换的结果. +操作符优先字符串拼接 : 只要有操作数是字符串或者是可以转换为字符串的对象, 另一个操作数也会被转换为字符串并执行拼接操作
只有任何操作数都不是字符串或者类字符串值时,才会执行加法操作
只有任何操作数都不是字符串或者类字符串值时,才会执行加法操作
只有任何操作数都不是字符串或者类字符串值时,才会执行加法操作

严格来讲, +操作符的行为满足以下条件

  • 如果一个操作数是对象, Date对象使用toString()方法来转换, 其他所有对象通过valueOf()转换(如果这个对象返回原始值). 不过,多数对象没有valueOf()方法, 因此它们也会通过toString()方法转换
  • 完成对象到原始值的转换后, 如果有操作数是字符串, 另一个操作数也会被转换为字符串进行拼接
  • 只有当两个操作数都被转换为数值(或NaN), 才会计算加法

例子来啦

1 + 2 // => 3 :加法
"1" + "2" // => "12" : 拼接
"1" + 2 // => "12" :数值转换为字符串之后再进行拼接
1 + {} // => "1[object Object]": 对象转换为字符串后再进行拼接
true + true // => 2 :布尔值转换为数值后计算加法
2 + null // => null :转换为 0 后 计算加法
2 + undefined // => NaN : undefined 转换为 NaN 后计算加法

注意 +操作符在用于字符串和数值时, 结果取决于操作执行的顺序

1 + 2 + " hello world" // => "3 hello world"
1 + (2 + " hello world") // => "12 hello world" 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值