Javascript连接+并分配+ =?

时间:2016-09-01 21:35:16

标签: javascript string-concatenation assignment-operator

我正在读一本关于Javascript的书我已经谈到了关于赋值运算符和连接的一个令人困惑的部分。请参阅以下代码

var msg = 'JavaScript'; msg += ' Code'; //Concatenate
var intA = 8; intA -= 4; //Subtract and assign
var intB = 24; intB *= intA; //Multiply and assign

var str = 'Add & assign string: ' + msg;
    str += '<br>Multiply & assign: ' + initB;

我得到+=运算符,当处理字符串连接两个操作数时,处理数字时,它们会添加操作数的值,并重新分配给第一个操作数的计算值。

我还得到str被初始化为'Add & assign string ' + msg;,然后附加另一个字符串和变量。

但是为什么不在str变量的例子中写下面的内容呢?

var str = 'Add & assign string ' + msg + '<br>Multiply & assign: ' + initB;

我是否误解了+和+ =之间的细微差别,或者在这个用例中它们是否相同?

1 个答案:

答案 0 :(得分:3)

这样的表达式
a += b

被解释(几乎)就像它被写成

一样
a = a + b

解释语言结构的有争议的例子是人为设计的,并不一定反映常见的做法。 (如果他们这样做会很好,但创建代码示例非常困难。)