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