¿Cómo alternar un booleano?

Resuelto Chris Dutrow asked hace 12 años • 9 respuestas

¿Existe una manera realmente sencilla de alternar un valor booleano en javascript ?

Hasta ahora, lo mejor que tengo además de escribir una función personalizada es el ternario:

bool = bool ? false : true;
Chris Dutrow avatar Jul 23 '12 05:07 Chris Dutrow
Aceptado
bool = !bool;

Esto es válido en la mayoría de los idiomas.

Jordan avatar Jul 22 '2012 22:07 Jordan

Si no le importa que el valor booleano se convierta en un número (es decir, 0 o 1), puede utilizar el operador de asignación XOR bit a bit . Al igual que:

bool ^= true;   //- toggle value.

Esto es especialmente bueno si utiliza nombres booleanos largos y descriptivos, por ejemplo:
let inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

Para mí esto es más fácil de escanear que repetir la variable en cada línea.

Este método funciona en todos los navegadores (principales) (y en la mayoría de los lenguajes de programación).

Brock Adams avatar May 28 '2013 05:05 Brock Adams
bool = bool != true;

Uno de los casos.

Boris avatar Jul 13 '2016 11:07 Boris

Estaba buscando un método de alternancia que haga lo mismo, pero que "alterna" un valor inicial de nullo undefineda false.

Aquí lo tienes:

booly = !(booly != false)
OfirD avatar Jun 11 '2018 13:06 OfirD