Heim  >  Artikel  >  Web-Frontend  >  Warum verhält sich der ternäre Operator von JavaScript anders, wenn er mit dem Operator „=“ verwendet wird?

Warum verhält sich der ternäre Operator von JavaScript anders, wenn er mit dem Operator „=“ verwendet wird?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 22:41:03195Durchsuche

Why Does JavaScript's Ternary Operator Behave Differently When Used with the ` =` Operator?

Ternärer Operator und Operatorpriorität von JavaScript

Um unerwartete Ergebnisse zu vermeiden, ist es wichtig, die Reihenfolge zu verstehen, in der Vorgänge im Code ausgeführt werden. In JavaScript stellt der ternäre Operator eine häufige Herausforderung dar, insbesondere in Kombination mit anderen Operatoren.

Bedenken Sie den folgenden Codeausschnitt:

h.className += h.className ? ' error' : 'error'

Man könnte annehmen, dass der Code wie folgt funktioniert:

h.className = h.className + h.className ? ' error' : 'error'

Diese Interpretation ist jedoch falsch, da sie zu einem Konsolenfehler führt. Um den Code richtig zu verstehen, ist es wichtig, die Vorrangigkeit des Operators zu berücksichtigen.

Antwort:

Der Schlüssel zum Verständnis des Codes besteht darin, zu erkennen, dass der Operator Vorrang vor dem Ternären hat Operator. Daher wertet der Code wie folgt aus:

h.className = h.className + (h.className ? ' error' : 'error')

In diesem Fall verkettet der Operator h.className mit dem Ergebnis des ternären Operators. Der ternäre Operator prüft den Wahrheitsgehalt von h.className und gibt „error“ zurück, wenn er wahr ist, andernfalls „error“.

Um Verwirrung zu vermeiden, ist es ratsam, das Ziel der Operation explizit anzugeben. In diesem Fall stellt die Verwendung von Klammern zum Gruppieren des Ausdrucks sicher, dass der Operator wie beabsichtigt auf h.className angewendet wird.

Das obige ist der detaillierte Inhalt vonWarum verhält sich der ternäre Operator von JavaScript anders, wenn er mit dem Operator „=“ verwendet wird?. 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