¿Hay una manera realmente fácil de alternar un valor booleano en javascript ?
Hasta ahora, lo mejor que tengo fuera de escribir una función personalizada es el ternario:
bool = bool ? false : true;
¿Hay una manera realmente fácil de alternar un valor booleano en javascript ?
Hasta ahora, lo mejor que tengo fuera de escribir una función personalizada es el ternario:
bool = bool ? false : true;
Respuestas:
bool = !bool;
Esto es cierto en la mayoría de los idiomas.
bool = !bool || true;
para tener un valor predeterminado, supongo.
Si no le importa que el booleano se convierta en un número (que es 0 o 1), puede usar el Operador de asignación XOR de Bitwise . Al igual que:
bool ^= true; //- toggle value.
Esto es especialmente bueno si usa nombres booleanos largos y descriptivos, por ejemplo:
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)
Es más fácil para mí 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).
bool ^= 1
bool === false
ni bool === true
más. Puede romper el código existente, así que tenga cuidado.
Veamos esto en acción:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
De todos modos, no hay un camino más corto que el que tienes actualmente.
Estaba buscando un método de alternancia que haga lo mismo, excepto por un valor inicial de null
o undefined
, donde debería convertirsefalse
.
Aquí está:
booly = !(booly != false)