[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Logical_OR [Back]  [Original]

Logisches ODER (||) - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Logisches ODER (||)

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Der logische ODER-Operator (||) (logische Disjunktion) fr eine Menge von Operanden ist wahr, wenn und nur wenn einer oder mehrere seiner Operanden wahr sind. Er wird typischerweise mit booleschen (logischen) Werten verwendet. In diesem Fall gibt er einen booleschen Wert zurck. Der || Operator gibt jedoch tatschlich den Wert eines der angegebenen Operanden zurck, sodass er bei Verwendung mit nicht-booleschen Werten einen nicht-booleschen Wert zurckgibt.

In diesem Artikel

Probieren Sie es aus

const a = 3;
const b = -2;

console.log(a > 0 || b > 0);
// Expected output: true

Syntax

js
x || y

Beschreibung

Wenn x in true konvertiert werden kann, wird x zurckgegeben; andernfalls wird y zurckgegeben.

Wenn ein Wert in true konvertiert werden kann, wird der Wert als truthy bezeichnet. Wenn ein Wert in false konvertiert werden kann, wird der Wert als falsy bezeichnet.

Beispiele fr Ausdrcke, die in false konvertiert werden knnen, sind:

  • null;
  • NaN;
  • 0;
  • leerer String ("" oder '' oder ``);
  • undefined.

Auch wenn der || Operator mit Operanden verwendet werden kann, die keine booleschen Werte sind, kann er dennoch als boolescher Operator betrachtet werden, da sein Rckgabewert immer in einen booleschen primitiven Wert konvertiert werden kann. Um seinen Rckgabewert (oder einen beliebigen Ausdruck allgemein) explizit in den entsprechenden booleschen Wert zu konvertieren, verwenden Sie einen doppelten NOT-Operator oder den Boolean() Konstruktor.

Kurzschlussbewertung

Der logische ODER-Ausdruck wird von links nach rechts ausgewertet und auf mgliche "Kurzschluss"-Bewertung getestet, indem die folgende Regel angewendet wird:

(ein wahrer Ausdruck) || expr wird durch Kurzschlussbewertung zu dem wahren Ausdruck ausgewertet.

Kurzschluss bedeutet, dass der expr-Teil oben nicht ausgewertet wird, daher treten keine Nebeneffekte auf (z.B. wenn expr ein Funktionsaufruf ist, findet der Aufruf niemals statt). Dies geschieht, weil der Wert des Operators bereits nach der Auswertung des ersten Operanden bestimmt ist. Siehe Beispiel:

js
function A() {
  console.log("called A");
  return false;
}
function B() {
  console.log("called B");
  return true;
}

console.log(B() || A());
// Logs "called B" due to the function call,
// then logs true (which is the resulting value of the operator)

Operatorprioritt

Die folgenden Ausdrcke scheinen quivalent zu sein, sind es aber nicht, da der && Operator vor dem || Operator ausgefhrt wird (siehe Operatorprioritt).

js
true || false && false; // returns true, because && is executed first
(true || false) && false; // returns false, because grouping has the highest precedence

Beispiele

Verwendung von ODER

Der folgende Code zeigt Beispiele des || (logisches ODER) Operators.

js
true || true; // t || t returns true
false || true; // f || t returns true
true || false; // t || f returns true
false || 3 === 4; // f || f returns false
"Cat" || "Dog"; // t || t returns "Cat"
false || "Cat"; // f || t returns "Cat"
"Cat" || false; // t || f returns "Cat"
"" || false; // f || f returns false
false || ""; // f || f returns ""
false || varObject; // f || object returns varObject

Hinweis: Wenn Sie diesen Operator verwenden, um einen Standardwert fr eine Variable bereitzustellen, beachten Sie, dass jeder falsy Wert nicht verwendet wird. Wenn Sie nur null oder undefined herausfiltern mchten, sollten Sie berlegen, den Nullish Coalescing Operator zu verwenden.

Konvertierungsregeln fr boolesche Werte

Konvertierung von UND zu ODER

Die folgende Operation mit booleschen Werten:

js
bCondition1 && bCondition2

ist immer gleich:

js
!(!bCondition1 || !bCondition2)

Konvertierung von ODER zu UND

Die folgende Operation mit booleschen Werten:

js
bCondition1 || bCondition2

ist immer gleich:

js
!(!bCondition1 && !bCondition2)

Entfernen von geschachtelten Klammern

Da logische Ausdrcke von links nach rechts ausgewertet werden, ist es immer mglich, Klammern aus einem komplexen Ausdruck nach bestimmten Regeln zu entfernen.

Die folgende zusammengesetzte Operation mit booleschen Werten:

js
bCondition1 && (bCondition2 || bCondition3)

ist immer gleich:

js
!(!bCondition1 || !bCondition2 && !bCondition3)

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# prod-LogicalORExpression

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page