Můžete inicializovat dvě proměnné na stejnou hodnotu najednou, trochu:
var foo, bar; foo = bar = 10;
Neexistuje však žádný podobně snadný mechanismus, který by přidal, řekněme, 5 k oběma foo
a bar
současně. Samozřejmě je to jednoduché:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Ale to jsou dvě operace.
Trik je:
foo += -bar + (bar += 5); // foo and bar are now 15
Pravděpodobně to nikdy nebudete potřebovat, je jen zajímavé vědět, že je to možné.
Děkujeme Matheusovi Avellarovi za zaslání tohoto malého triku mindbending, který také vysvětluje:
-bar
Dostane analyzován a stane se zápornou hodnotubar
, takže -10. Poté sea += 5
spustí a nastaví sebar
na 15 (10 + 5). Nakonec sečte obě hodnoty (-10 + 15) a dá vám rozdíl mezi staroubar
a novoubar
, což je 15.