Logischer ODER-Operator (||) und nicht-boolesche Operanden
In JavaScript wird häufig der logische ODER-Operator (||) verwendet um boolesche Ausdrücke auszuwerten. Es kann jedoch auch auf nicht-boolesche Operanden angewendet werden, was zu unerwarteten Ergebnissen führt.
Betrachten Sie den folgenden Code:
<code class="javascript">var $time = Date.now || function() { return +new Date; };</code>
In diesem Beispiel ist || Der Operator wird verwendet, um der Variablen $time eine Funktion zuzuweisen. Der Ausdruck wertet das Ergebnis von Date.now aus, wenn es existiert (d. h. es ist nicht null oder undefiniert), andernfalls führt es die anonyme Funktion aus, die den aktuellen Zeitstempel zurückgibt.
Der Grund für dieses Verhalten liegt in die sekundäre Rolle des || Operator als „Standard“-Operator. Wenn beide Operanden nicht boolesch sind, wird der linke Operand zurückgegeben, wenn er wahr ist (nicht null, undefiniert, die leere Zeichenfolge oder 0), und der rechte Operand, wenn der linke Operand falsch ist.
Im angegebenen Code ist Date.now ein wahrer Wert, daher wird der linke Operand zurückgegeben, der die ursprüngliche Date.now-Funktion ist. Wenn Date.now jedoch nicht verfügbar wäre (z. B. in älteren Browsern), wäre stattdessen der rechte Operand, die anonyme Funktion, ausgeführt worden.
Diese Verwendung des || Mit dem Operator können Entwickler auf prägnante Weise Standardwerte oder Fallback-Verhalten angeben. Der folgende Code weist beispielsweise der Variablen v einen Wert zu, aber wenn v nicht definiert ist, setzt er den Wert auf 10:
<code class="javascript">value = v || 10;</code>
Ähnlich schützt der folgende Code vor dem Zugriff auf eine Eigenschaft eines Nullables Objekt:
<code class="javascript">var value = p && p.name;</code>
Abschließend ist das || Der (logische ODER-)Operator in JavaScript kann auch mit nicht-booleschen Operanden verwendet werden, wobei er den Operanden auf der linken Seite auswertet, wenn er wahr ist, oder andernfalls auf den Operanden auf der rechten Seite. Dieses Verhalten kann nützlich sein, um Standardwerte anzugeben und nullsicheren Code zu schreiben.
Das obige ist der detaillierte Inhalt vonKann der logische ODER-Operator (||) in JavaScript nicht-boolesche Operanden verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!