web-dev-qa-db-fra.com

Comment basculer un booléen?

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;
367
Chris Dutrow
bool = !bool;

Cela est vrai dans la plupart des langues.

824
Jordan

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).

79
Brock Adams
bool = bool != true;

Un des cas.

10
Feeco

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.

4
student

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)
1
HeyJude
bool === tool ? bool : tool

si vous voulez que la valeur soit vraie si tool (un autre booléen) a la même valeur

1
Ardhi