Чи є дійсно простий спосіб переключити булеве значення в JavaScript ?
Поки що найкраще, що я маю поза написанням спеціальної функції, - це потрійний:
bool = bool ? false : true;
Чи є дійсно простий спосіб переключити булеве значення в JavaScript ?
Поки що найкраще, що я маю поза написанням спеціальної функції, - це потрійний:
bool = bool ? false : true;
Відповіді:
bool = !bool;
Це справедливо для більшості мов.
bool = !bool || true;
мати типовий стандарт.
Якщо ви не заперечуєте, щоб булева конверсія була перетворена в число (тобто 0 або 1), ви можете скористатися оператором призначення бітового XOR . Так:
bool ^= true; //- toggle value.
Це особливо добре, якщо ви використовуєте довгі описові булеві імена, EG:
var inDynamicEditMode = true; // Value is: true (boolean)
inDynamicEditMode ^= true; // Value is: 0 (number)
inDynamicEditMode ^= true; // Value is: 1 (number)
inDynamicEditMode ^= true; // Value is: 0 (number)
Мені простіше сканувати, ніж повторювати змінну в кожному рядку.
Цей метод працює у всіх (основних) браузерах (і більшості мов програмування).
bool ^= 1
bool === false
чи bool === true
більше. Він може порушити існуючий код, тому будьте обережні.
Давайте подивимось це в дії:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
У будь-якому випадку, немає більш короткого шляху, ніж у вас зараз.