Есть ли действительно простой способ переключить логическое значение в JavaScript ?
Пока что лучшее, что у меня есть за пределами написания пользовательской функции - это троица:
bool = bool ? false : true;
Есть ли действительно простой способ переключить логическое значение в JavaScript ?
Пока что лучшее, что у меня есть за пределами написания пользовательской функции - это троица:
bool = bool ? false : true;
Ответы:
bool = !bool;
Это верно в большинстве языков.
bool = !bool || true;
иметь значение по умолчанию, я полагаю.
Если вы не возражаете против преобразования логического числа в число (то есть 0 или 1), вы можете использовать оператор побитового присваивания XOR . Вот так:
bool ^= true; //- toggle value.
Это особенно хорошо, если вы используете длинные описательные логические имена, например:
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
В любом случае, нет более короткого пути, чем тот, который у вас есть.