Czy istnieje naprawdę łatwy sposób przełączania wartości boolowskiej w javascript ?
Do tej pory najlepsze, co mam poza pisaniem funkcji niestandardowej, to trójka:
bool = bool ? false : true;
Czy istnieje naprawdę łatwy sposób przełączania wartości boolowskiej w javascript ?
Do tej pory najlepsze, co mam poza pisaniem funkcji niestandardowej, to trójka:
bool = bool ? false : true;
Odpowiedzi:
bool = !bool;
Dotyczy to większości języków.
bool = !bool || true;
Przypuszczam, że można go rozwinąć, aby mieć wartość domyślną.
Jeśli nie przeszkadza ci konwersja wartości logicznej na liczbę (czyli 0 lub 1), możesz użyć Bitowego operatora przypisania XOR . Tak jak:
bool ^= true; //- toggle value.
Jest to szczególnie dobre, jeśli używasz długich, opisowych nazw boolowskich, np .:
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)
To jest dla mnie łatwiejsze do skanowania niż powtarzanie zmiennej w każdej linii.
Ta metoda działa we wszystkich (głównych) przeglądarkach (i większości języków programowania).
bool ^= 1
bool === false
ani bool === true
więcej. Może to uszkodzić istniejący kod, więc bądź ostrożny.
Zobaczmy to w akcji:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
W każdym razie nie ma krótszej drogi niż to, co obecnie masz.