Ви можете ініціалізувати дві змінні до одного і того ж значення одночасно, як би:
var foo, bar; foo = bar = 10;
Але немає такого ж простого механізму, щоб додати, скажімо, 5 до обох foo
і bar
одночасно. Звичайно, досить просто:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Але це дві операції.
Фокус у наступному:
foo += -bar + (bar += 5); // foo and bar are now 15
Напевно, це вам ніколи не знадобиться, просто цікаво знати, що це можливо.
Дякую Матеусу Авеллару за те, що він надіслав цей маленький хитрий фокус, який також пояснює:
Аналізується і
-bar
отримує від'ємне значенняbar
, отже -10. Потімa += 5
виконується і встановлюєтьсяbar
на 15 (10 + 5). Нарешті, він підсумовує обидва значення (-10 + 15) і дає вам різницю між старимиbar
та новимиbar
, яка дорівнює 15.