一次将数字加到两个变量

Avatar of Chris Coyier
Chris Coyier

您可以同时将两个变量初始化为相同的值,有点像

var foo, bar;
foo = bar = 10;

但没有类似的简单机制可以将,比如,5 同时加到 foobar。当然,只需执行以下操作就足够简单了

foo += 5; // foo is now 15
bar += 5; // bar is now 15

但这需要两个操作。

技巧是

foo += -bar + (bar += 5);
// foo and bar are now 15

您可能永远不会需要这个,只是知道它是可能的很有趣。

感谢 Matheus Avellar 提供了这个令人费解的小技巧,他还解释了

-bar 被解析并成为 bar 的负值,即 -10。然后,a += 5 运行并将 bar 设置为 15 (10 + 5)。最后,它将两个值加起来 (-10 + 15) 并给出旧的 bar 和新的 bar 之间的差值,即 15。