Você pode inicializar duas variáveis com o mesmo valor de uma vez, tipo:
var foo, bar; foo = bar = 10;
Mas não existe um mecanismo igualmente fácil para adicionar, digamos, 5 a ambos foo
e bar
ao mesmo tempo. Claro, é simples o suficiente apenas fazer:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Mas são duas operações.
O truque é:
foo += -bar + (bar += 5); // foo and bar are now 15
Você provavelmente nunca precisará disso, é apenas interessante saber que é possível.
Obrigado a Matheus Avellar por enviar este pequeno truque alucinante, que também explica:
O
-bar
é analisado e se torna o valor negativo debar
, portanto, -10. Em seguida,a += 5
é executado e definidobar
para 15 (10 + 5). Por fim, ele soma os dois valores (-10 + 15) e fornece a diferença entre o antigobar
e o novobar
, que é 15.