[JavaScript] 二元加号运算符

参考Ecmascript 5.1规范:

加法运算符(+) 11.6.1
二元加法运算符或者执行字符串连接操作或者执行数字加法操作。

产生式 AdditiveExpression : AdditiveExpression + MultiplicativeExpression
按照下面的过程执行 :

令 lref 为解释执行 AdditiveExpression 的结果 .
令 lval 为 GetValue(lref).
令 rref 为解释执行 MultiplicativeExpression 的结果 .
令 rval 为 GetValue(rref).
令 lprim 为 ToPrimitive(lval).
令 rprim 为 ToPrimitive(rval).
如果 Type(lprim) 为 String 或者 Type(rprim) 为 String,则: 返回由 ToString(lprim) 和 ToString(rprim) 连接而成的字符串
返回将加法运算作用于 ToNumber(lprim) 和 ToNumber(rprim) 的结果。

注:
(1)GetValue 8.7.1
(2)ToPrimitive 9.1
(3)ToNumber 9.3

点赞