Gibt es einen wirklich einfachen Weg, um einen Booleschen Wert in javascript umzuschalten?
Bisher ist das Beste, was ich außer dem Schreiben einer benutzerdefinierten Funktion erreicht habe, das Ternär:
bool = bool ? false : true;
Gibt es einen wirklich einfachen Weg, um einen Booleschen Wert in javascript umzuschalten?
Bisher ist das Beste, was ich außer dem Schreiben einer benutzerdefinierten Funktion erreicht habe, das Ternär:
bool = bool ? false : true;
Dies erfordert eine Initialisierung, gibt es also einen Weg ohne Initialisierung. Obwohl dies bei Objektattributen funktionieren würde.
@user2846569, wenn Sie den booleschen Wert umschalten, bedeutet das, dass die Variable bereits initialisiert wurde. Sie könnten es erweitern auf bool = !bool || true;
um einen Standardwert zu haben, nehme ich an.
Wenn es Ihnen nichts ausmacht, dass das Boolean in eine Zahl umgewandelt wird (entweder 0 oder 1), können Sie den Bitweisen XOR-Zuweisungsoperator verwenden. So:
bool ^= true; //- Wert umschalten.
Das ist besonders gut, wenn Sie lange, beschreibende Boolean-Namen verwenden, z.B.:
let inDynamicEditMode = true; // Wert ist: true (Boolean)
inDynamicEditMode ^= true; // Wert ist: 0 (Zahl)
inDynamicEditMode ^= true; // Wert ist: 1 (Zahl)
inDynamicEditMode ^= true; // Wert ist: 0 (Zahl)
Für mich ist es einfacher zu scannen als die Variable in jeder Zeile zu wiederholen.
Dies funktioniert in allen (wichtigen) Browsern (und den meisten Programmiersprachen).
Da dies sowieso in einen Integer umgewandelt wird, kann es vereinfacht werden als: bool ^= 1
Da der Wert in eine Zahl umgewandelt wird, können Sie nicht mehr bool === false
oder bool === true
durchführen. Dies könnte vorhandenen Code zum Absturz bringen, also seien Sie vorsichtig.
Lassen Sie uns das in Aktion sehen:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
Wie auch immer, gibt es keinen kürzeren Weg als den, den Sie derzeit haben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.