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