Переключение логического значения в javascript
есть ли действительно простой способ переключить логическое значение в в JavaScript?
до сих пор лучшее, что у меня есть за пределами написания пользовательской функции, - это тернарное:
bool = bool ? false : true;
6 ответов
Если вы не против преобразования логического значения в число (то есть 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)
мне легче сканировать, чем повторять переменную в каждой строке.
этот метод работает во всех (основных) браузерах (и в большинстве языков программирования).
давайте посмотрим это в действии:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
В общем, нет более короткого пути, чем тот, который у вас есть в настоящее время.
bool === tool ? bool : tool
Если вы хотите, чтобы значение имело значение true, если tool
(другое логическое значение) имеет то же значение
Я искал метод переключения, который делает то же самое, за исключением начального значения null
или undefined
, где он должен стать false
.
вот это:
booly = !(booly != false)