Dodaj liczbę do dwóch zmiennych naraz - CSS-Tricks

Anonim

Możesz zainicjować dwie zmienne na tę samą wartość naraz, tak jakby:

var foo, bar; foo = bar = 10;

Nie ma jednak podobnie łatwego mechanizmu dodania, powiedzmy, 5 do obu fooi barjednocześnie. Oczywiście wystarczy zrobić:

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

Ale to dwie operacje.

Sztuczka jest taka:

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

Prawdopodobnie nigdy nie będziesz tego potrzebować, po prostu interesujące jest wiedzieć, że jest to możliwe.

Dziękuję Matheusowi Avellarowi za przesłanie tej małej sztuczki oszałamiającej, który również wyjaśnia:

Zostanie -barprzeanalizowany i stanie się wartością ujemną bar, czyli -10. Następnie a += 5biegnie i ustawia barna 15 (10 + 5). Na koniec podsumowuje obie wartości (-10 + 15) i podaje różnicę między starą bara nową bar, która wynosi 15.