Heim > Web-Frontend > js-Tutorial > Warum gibt „2' > „10' in JavaScript „True' zurück?

Warum gibt „2' > „10' in JavaScript „True' zurück?

Barbara Streisand
Freigeben: 2024-11-13 10:24:02
Original
194 Leute haben es durchsucht

Why Does „10“ Return True in JavaScript? " /> "10" True in JavaScript zurückgeben? " />

Javascript: Unvorhergesehenes Rätsel beim String-Integer-Vergleich

Im Bereich der Webentwicklung ist es oft notwendig, Parameter zu vergleichen, die als Strings oder ganze Zahlen gespeichert sind. Allerdings ist ein eigenartiger Fehler aufgetaucht, der Entwicklern Kopfzerbrechen bereitet. Ganzzahlvergleiche scheinen sich unregelmäßig zu verhalten, als ob die Parameter als Zeichenfolgen behandelt würden Stattdessen.

Betrachten Sie dieses verblüffende Beispiel: Wenn der Code console.log("2" > "10") ausgeführt wird, gibt er unerwartet „true“ zurück. Dies widerspricht allen logischen Erwartungen, da 2 numerisch ist kleiner als 10.

Was ist also die Ursache für dieses eigenartige Verhalten? Es stellt sich heraus, dass die Vergleichsoperatoren von Javascript standardmäßig lexikalische Vergleiche durchführen Beim Vergleich von Zeichenfolgen und Ganzzahlen werden die Zeichenfolgen als Unicode-Codepunkte behandelt und zeichenweise verglichen. In diesem Fall ist die führende „2“ in der Zeichenfolge „2“ lexikalisch größer als die führende „1“ in „10“. das Ergebnis.

Um dieses Problem zu lösen, ist es wichtig, die String-Parameter explizit in Ganzzahlen zu analysieren. Dies kann mithilfe der parseInt-Funktion erreicht werden, wie im folgenden Code gezeigt:

console.log(parseInt("2", 10) > parseInt("10", 10));
Nach dem Login kopieren

Durch das Parsen der Zeichenfolgen in Ganzzahlen stellen wir sicher, dass numerische Vergleiche korrekt durchgeführt werden, ohne lexikalischen Fallstricken zum Opfer zu fallen.

Das obige ist der detaillierte Inhalt vonWarum gibt „2' > „10' in JavaScript „True' zurück?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage