为什么这段JavaScript代码输出12而非10?
为什么这段JS代码输出12而不是10?
先看你贴的代码:
let number1 = 3; let number2 = 2; number1 += number2; number2 += number1; let result = number1 + number2; console.log(result);
咱们一步步拆解执行过程,就能明白为啥输出是12:
- 初始状态:
number1 = 3,number2 = 2 - 执行
number1 += number2:等价于number1 = 3 + 2,此时number1变成5 - 执行
number2 += number1:这里的number1已经是修改后的5了,所以number2 = 2 + 5,变成7 - 最后
result = 5 + 7 = 12,控制台自然输出12
如果你期望得到10,应该是误以为第三步里number2加的是原来的number1(也就是3)。要实现这个效果,得先把number1的初始值存起来,比如:
let number1 = 3; let number2 = 2; const originalNum1 = number1; // 保存初始值 number1 += number2; number2 += originalNum1; let result = number1 + number2; console.log(result); // 此时输出10
内容的提问来源于stack exchange,提问作者XVNVSX
相关产品推荐
相关产品推荐

