javascript - 如何在一条语句中将相同的值添加到两个变量?

标签 javascript

可以将多个变量初始化为相同的值 a=b=5。此外,可以使用 a+=2 添加到变量。但是有什么办法可以同时为两者添加相同的值吗?像这样的 a+=b+=2 没有 a 增加 2b 的值。所以在这种情况下,ab 最终都是 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/

相关文章:

javascript - 在警报对话框中附加消息

javascript - 将 30 分钟添加到 Date 会导致它返回 30 分钟

javascript - 使用ajax设置和调用全局变量

javascript - 将 json 数组拆分为 JS 变量

javascript - 类型错误 : Cannot read property 'database' of undefined

javascript - 如何在 console.log 中打印 JSON 数据?

javascript,用户点击太快

javascript - 自动编号表行meteor.js

javascript - 使用 Javascript 创建父类(super class)(继承)

javascript - 将 RegEx 从 JavaScript 转换为 Java