Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum schlägt mein JavaScript-Code mit „h.className = h.className' fehl? \'error\' : \'error\'`?

DDD
Freigeben: 2024-10-31 21:46:02
Original
805 Leute haben es durchsucht

Why Does My JavaScript Code Fail with `h.className  = h.className ? ' error' : 'error'`?

Operator Precedence Enigma: Ternärer Operator und Verkettung von JavaScript

Die Verwendung des ternären Operators in JavaScript kann verwirrend sein, insbesondere wenn er mit anderen vermischt wird Betreiber. Betrachten Sie den folgenden Codeausschnitt:

h.className += h.className ? ' error' : 'error'
Nach dem Login kopieren

Der Zweck dieses Codes besteht darin, die Zeichenfolge „error“ an die className-Eigenschaft des HTML-Elements „h“ anzuhängen. Der Code schlägt jedoch mit einem Fehler fehl. Um zu verstehen, warum, müssen wir die Operatorpriorität in JavaScript analysieren.

Der ternäre Operator (?:) hat eine höhere Priorität als der Zuweisungsoperator (=). Daher entspricht der obige Code:

h.className = h.className + (h.className ? ' error' : 'error')
Nach dem Login kopieren
Nach dem Login kopieren

Diese Interpretation ist sinnvoller. Der ternäre Operator prüft, ob h.className nicht null oder undefiniert ist (ein „wahrer“ Wert). Wenn „true“, wird „error“ an h.className angehängt. Andernfalls wird „error“ angehängt.

Um den ursprünglichen Code zu korrigieren, müssen wir den Zuweisungsoperator explizit in Klammern hinzufügen:

h.className = h.className + (h.className ? ' error' : 'error')
Nach dem Login kopieren
Nach dem Login kopieren

Indem wir den Zuweisungsoperator in Klammern setzen, überschreiben wir ihn die Vorrangregeln und stellen sicher, dass der gesamte ternäre Ausdruck h.className.

zugewiesen wird

Das obige ist der detaillierte Inhalt vonWarum schlägt mein JavaScript-Code mit „h.className = h.className' fehl? \'error\' : \'error\'`?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!