Existe-t-il un moyen très facile de basculer une valeur booléenne dans javascript?
Jusqu'à présent, le meilleur que j'ai en dehors de l'écriture d'une fonction personnalisée est le ternaire:
bool = bool ? false : true;
bool = !bool;
Cela est vrai dans la plupart des langues.
Si la conversion de la valeur booléenne en nombre (c’est-à-dire 0 ou 1) ne vous dérange pas, vous pouvez utiliser l’opérateur d’assignation Bitwise XOR . Ainsi:
bool ^= true; //- toggle value.
Ceci est particulièrement utile si vous utilisez des noms booléens descriptifs longs, par exemple:
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)
Il est plus facile pour moi d’analyser que de répéter la variable dans chaque ligne.
Cette méthode fonctionne dans tous les navigateurs (principaux) (et dans la plupart des langages de programmation).
bool = bool != true;
Un des cas.
Voyons cela en action:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
Quoi qu'il en soit, il n'y a pas de moyen plus court que ce que vous avez actuellement.
Je cherchais une méthode de basculement qui fait la même chose, à l'exception d'une valeur initiale de null
ou undefined
, où elle devrait devenir false
.
C'est ici:
booly = !(booly != false)
bool === tool ? bool : tool
si vous voulez que la valeur soit vraie si tool
(un autre booléen) a la même valeur