可以将多个变量初始化为相同的值 a=b=5
。此外,可以使用 a+=2
添加到变量。但是有什么办法可以同时为两者添加相同的值吗?像这样的 a+=b+=2
没有 a
增加 2
和 b
的值。所以在这种情况下,a
和 b
最终都是 7。
此外,我不是在寻找重复附加值的答案,例如 a+=2,b+=2
。
我意识到这不是最好的编码实践,我只是想知道它是否可能。在性质上与 Swapping two variable value without using 3rd variable 有点相似
最佳答案
你可以做到!方法如下:
var a = 10;
var b = 15;
b += -a + (a += 10); // In this case, adding 10 to both
console.log(a, b); //=> 20 25
BOOM(是的,它也让我大吃一惊)
有时候为什么不重要,重要的是您可以做到!
那么,它是如何/为什么起作用的?
-a
被解析并成为 a
的负值,即 10(所以 -10)。然后,a += 10
运行并将 a
设置为 20 (10 + 10)。最后,它将两个值相加 (-10 + 20
) 并为您提供旧 a
和新 a
之间的差异。
华丽。
编辑: 为了完整起见,截至 ES6 的 destructuring assignments ,你可以这样做:
let a = 10;
let b = 15;
[ a, b ] = [ a+10, b+10 ]
console.log(a, b); //=> 20 25
这也是一个语句,而且更简洁、更易于理解。
关于javascript - 如何在一条语句中将相同的值添加到两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42452496/