Eine Zahl zu zwei Variablen gleichzeitig hinzufügen

Avatar of Chris Coyier
Chris Coyier am

Man kann zwei Variablen gleichzeitig mit demselben Wert initialisieren, irgendwie.

var foo, bar;
foo = bar = 10;

Aber es gibt keinen ähnlich einfachen Mechanismus, um beispielsweise 5 zu foo und bar gleichzeitig zu addieren. Natürlich ist es einfach genug, einfach zu tun:

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

Aber das sind zwei Operationen.

Der Trick ist:

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

Das werden Sie wahrscheinlich nie brauchen, es ist nur interessant zu wissen, dass es möglich ist.

Vielen Dank an Matheus Avellar, der diesen kleinen, verwirrenden Trick eingesendet hat und auch erklärt:

Das -bar wird geparst und wird zum negativen Wert von bar, also -10. Dann wird a += 5 ausgeführt und setzt bar auf 15 (10 + 5). Schließlich werden beide Werte (-10 + 15) summiert und Sie erhalten die Differenz zwischen dem alten und dem neuen bar, nämlich 15.