Как переключить логическое значение?

Есть ли действительно простой способ для переключения логического значения в javascript?

До сих пор лучшее, что у меня было за пределами написания пользовательской функции, это тройной:

bool = bool ? false : true;

Ответ 1

bool = !bool;

Это верно для большинства языков.

Ответ 2

Если вы не возражаете, чтобы логическое преобразование в число (то есть 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)

Мне легче сканировать, чем повторять переменную в каждой строке.

Этот метод работает во всех (основных) браузерах (и большинстве языков программирования).

Ответ 3

bool = bool != true;

Один из случаев.

Ответ 4

Давайте посмотрим на это в действии:

var b = true;

console.log(b); // true

b = !b;
console.log(b); // false

b = !b;
console.log(b); // true

Ответ 5

bool === tool ? bool : tool

если вы хотите, чтобы значение сохраняло значение true, если tool (другое логическое значение) имеет то же значение

Ответ 6

Я искал метод переключения, который делает то же самое, за исключением начального значения null или undefined, где оно должно стать false.

Вот:

booly = !(booly != false)