我正在读一本关于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;
我是否误解了+和+ =之间的细微差别,或者在这个用例中它们是否相同?
答案 0 :(得分:3)
像
这样的表达式a += b
被解释(几乎)就像它被写成
一样a = a + b
解释语言结构的有争议的例子是人为设计的,并不一定反映常见的做法。 (如果他们这样做会很好,但创建代码示例非常困难。)