Open
Description
加号运算符(+)在JavaScript中无处不再,但是就是因为它太常用以至于我们忽略了它。
加号运算符的两种含义
- 用在数字上,就是相加
- 用在字符串上,就是连接
这个应该很简单,我们来试试
数字相加
var a = 3;
var b = 6;
var c = a + b; //=> 9
字符串相加
var a = 3;
var b = '6';
var c = a + b; //=> '36'
这个结果理所应当,但是不是我们想要的。
这里的+
号被解释成了连接符号。我们只需要这样即可:c = a + b*1
,这样就解释成了运算符加号
连接与运算的优先级
这个问题不可避免,在我们开发中经常遇到。
先来看看下面这个例子:
var money1 = 2000;
var money2 = 3000;
var total = '2个月一共存了' + money1 + money2 + '元' ;
我想这个结果应该可以预料到: 2个月一共存了20003000元
要是现实中真是这样运算,我们岂不是发了。
出现这种情况的原因是:
- '2个月一共存了' 遇到 money1 时,处理成了'2个月一共存了2000'
- '2个月一共存了2000' 遇到 money2时,处理成了 '2个月一共存了20003000'
- ...
结论是:连接比相加优先级高
我们这个问题解决起来也很简单: var total = '2个月一共存了' + (money1 + money2) + '元' ;
通过括弧改变运算优先级。