Heim >Web-Frontend >js-Tutorial >Der „||'-Operator von JavaScript: Wie unterscheidet er sich von einem standardmäßigen logischen ODER?

Der „||'-Operator von JavaScript: Wie unterscheidet er sich von einem standardmäßigen logischen ODER?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 14:33:10667Durchsuche

JavaScript's `||` Operator:  How Does it Differ from a Standard Logical OR?

Logischer ODER-Operator (||) vs. JavaScript-Variante

Den Double-Pipe-Operator (||) verstehen

In den meisten Programmiersprachen stellt der Doppelpipe-Operator (||) den logischen ODER-Operator dar. Es wertet zwei boolesche Werte aus und folgt diesen Regeln:

  • Wenn der erste Wert falsch ist, prüft es den zweiten Wert. Wenn „true“, wird „true“ zurückgegeben; andernfalls falsch.
  • Wenn der erste Wert wahr ist, wird unabhängig vom zweiten Wert wahr zurückgegeben.

JavaScript-Interpretation

Allerdings , JavaScript behandelt || anders, weil es eine locker typisierte Sprache ist. Das bedeutet:

  • Nicht-Boolesche Werte: JavaScript ermöglicht die Verwendung von || mit nicht-booleschen Werten. Wenn der Wert falsch ist (z. B. 0, „“, null), wird er als falsch behandelt. andernfalls als wahr.
  • Ergebnisänderung: JavaScripts || Der Operator gibt den zweiten Wert zurück, wenn der erste Wert falsch ist; andernfalls wird der erste Wert zurückgegeben.

Beispiel:

(function(){}) || {}  // True (empty function is truthy)

Praktische Verwendung in JavaScript

Standardfunktion Parameter:

function (title, msg) {
  var title = title || 'Error';  // Assigns 'Error' if title is falsy
  var msg = msg || 'Error on Request';  // Assigns 'Error on Request' if msg is falsy
}

Schlechte Programmierpraxis:

Zuweisen || Von der direkten Verwendung von Ausdrücken in Variablen wird abgeraten, da dadurch die Übergabe falscher Werte als Parameter verhindert wird. Betrachten Sie diese Funktion:

function badFunction(flagA) {
  flagA = flagA || true;  // FlagA always becomes true, even if passed false
}

Bessere Vorgehensweise:

Verwenden Sie stattdessen explizite Prüfungen auf Falschheit:

function goodFunction(flagA) {
  flagA = typeof flagA !== "undefined" ? flagA : true;  // Sets to true only if undefined
}

ES6-Syntax für Standard Parameter:

function goodFunction(flagA = true) {  // Sets to true only if omitted
}

Fazit:

JavaScript's || Der Operator weist im Vergleich zu anderen Sprachen ein einzigartiges Verhalten auf. Es ist zwar praktisch zum Festlegen von Standardwerten, sollte jedoch mit Vorsicht verwendet werden, um unerwartete Ergebnisse und falsche Wertüberschreibungen zu vermeiden.

Das obige ist der detaillierte Inhalt vonDer „||'-Operator von JavaScript: Wie unterscheidet er sich von einem standardmäßigen logischen ODER?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn