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