再加上同样的误解

时间:2016-11-10 15:48:23

标签: javascript console

我正在浏览器中尝试某些内容,但我不了解结果。

当我输入:

var testPlus = 0;
testPlus += 2
console.log(testPlus)

它给testPlus = 2。

但是当我输入

var testPlus = 0;
(testPlus +=2) * 2;
console.log(testPlus)

仍然给出2,就像没有计算“* 2”一样。 我不明白为什么?

谢谢

3 个答案:

答案 0 :(得分:2)

您只是将+2分配回testPlus*2正在发生,但答案并未存储在任何地方。

因此,(testPlus +=2) * 2;将存储在testPlus 中的值提升到2,然后再乘以2,创建一个值4。但是,4未在任何地方使用或存储。

答案 1 :(得分:1)

声明

(testPlus +=2) * 2

首先评估括号中的部分。这会为变量添加2。只有这样,在更新变量后添加之后,值才会乘以2

如果您打算将testPlus更新为等于其值加2然后乘以2,则无法使用+=执行此操作:< / p>

testPlus = (testPlus + 2) * 2;

或者您可以使用两个语句的序列,一个语句为+=,另一个语句为*=

testPlus += 2;
testPlus *= 2;

答案 2 :(得分:0)

你永远不会使用表达式的结果。您将(已更改的)testPlus值乘以2,然后将其抛弃。比较testPlus + 2testPlus = testPlus + 2testPlus += 2是此的快捷方式。)