Erklärte JavaScript-Boolesche Werte - Verwendung von Booleschen Werten in JavaScript

Boolescher Wert

Boolesche Werte sind ein primitiver Datentyp, der häufig in Computerprogrammiersprachen verwendet wird. Per Definition hat ein Boolescher Wert zwei mögliche Werte: trueoder false.

In JavaScript gibt es häufig impliziten Typzwang für Boolesche Werte. Wenn Sie beispielsweise eine if-Anweisung haben, die einen bestimmten Ausdruck überprüft, wird dieser Ausdruck zu einem Booleschen Wert gezwungen:

const a = 'a string'; if (a) { console.log(a); // logs 'a string' }

Es gibt nur wenige Werte, die zu false gezwungen werden:

  • falsch (nicht wirklich erzwungen, da es bereits falsch ist)
  • Null
  • nicht definiert
  • NaN
  • 0
  • "" (leerer String)

Alle anderen Werte werden auf true gezwungen. Wenn ein Wert zu einem Booleschen Wert gezwungen wird, nennen wir das entweder "falsch" oder "wahr".

Ein Weg, wie Typenzwang verwendet wird, ist die Verwendung der Operatoren oder ( ||) und und ( &&):

const a = 'word'; const b = false; const c = true; const d = 0 const e = 1 const f = 2 const g = null console.log(a || b); // 'word' console.log(c || a); // true console.log(b || a); // 'word' console.log(e || f); // 1 console.log(f || e); // 2 console.log(d || g); // null console.log(g || d); // 0 console.log(a && c); // true console.log(c && a); // 'word'

Wie Sie sehen können, überprüft der Operator oder den ersten Operanden. Wenn dies wahr oder wahr ist, wird es sofort zurückgegeben (weshalb wir im ersten Fall 'Wort' und im zweiten Fall 'wahr' erhalten). Wenn es nicht wahr oder wahr ist, gibt es den zweiten Operanden zurück (weshalb wir im dritten Fall 'Wort' erhalten).

Mit dem Operator und funktioniert es auf ähnliche Weise, aber damit 'und' wahr sind, müssen beide Operanden wahr sein. Es wird also immer den zweiten Operanden zurückgeben, wenn beide wahr / wahr sind, andernfalls wird falsch zurückgegeben. Deshalb bekommen wir im vierten Fall wahr und im letzten Fall bekommen wir 'Wort'.

Das Boolesche Objekt

Es gibt auch ein natives JavaScript-Objekt, das einen Wert umschließt. Der als erster Parameter übergebene Wert wird bei Bedarf in einen booleschen Wert konvertiert. Wenn der Wert 0, -0, null, false, NaN, undefined oder die leere Zeichenfolge ("") weggelassen wird, hat das Objekt den Anfangswert false. Alle anderen Werte, einschließlich eines Objekts oder der Zeichenfolge "false", erstellen ein Objekt mit dem Anfangswert "true".

Verwechseln Sie die primitiven Booleschen Werte true und false nicht mit den Werten true und false des Booleschen Objekts.

Mehr Details

Jedes Objekt, dessen Wert nicht undefiniert oder null ist, einschließlich eines Booleschen Objekts, dessen Wert falsch ist, wird als wahr ausgewertet, wenn es an eine bedingte Anweisung übergeben wird. Wenn true, wird die Funktion ausgeführt. Beispiel: Die Bedingung in der folgenden if-Anweisung wird als wahr ausgewertet:

const x = new Boolean(false); if (x) { // this code is executed }

Dieses Verhalten gilt nicht für Boolesche Grundelemente. Beispiel: Die Bedingung in der folgenden if-Anweisung wird als falsch ausgewertet:

const x = false; if (x) { // this code is not executed }

Verwenden Sie kein Boolesches Objekt, um einen nicht-booleschen Wert in einen booleschen Wert zu konvertieren. Verwenden Sie stattdessen Boolean als Funktion, um diese Aufgabe auszuführen:

const x = Boolean(expression); // preferred const x = new Boolean(expression); // don't use

Wenn Sie ein Objekt angeben, einschließlich eines Booleschen Objekts, dessen Wert false ist, als Anfangswert eines Booleschen Objekts, hat das neue Boolesche Objekt den Wert true.

const myFalse = new Boolean(false); // initial value of false const g = new Boolean(myFalse); // initial value of true const myString = new String('Hello'); // string object const s = new Boolean(myString); // initial value of true

Verwenden Sie kein boolesches Objekt anstelle eines booleschen Grundelements.