Heim  >  Artikel  >  Web-Frontend  >  Erläuterung der Verwendung von Equality(==) in JavaScript

Erläuterung der Verwendung von Equality(==) in JavaScript

不言
不言nach vorne
2018-11-20 15:40:232837Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Erklärung der Verwendung von Gleichheit (==) in JavaScript. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Was ist die Magie?

Die Projekte, für die ich in letzter Zeit verantwortlich war, beinhalten Frontend, also habe ich versucht, js zu schreiben. Bei der Verarbeitung des Nicht-Null-Werts eines Feldes habe ich tagert_value == '' verwendet, um ein Urteil zu fällen, und dann ist etwas sehr Seltsames passiert. Einige Benutzer haben berichtet, dass die Überprüfung des Nicht-Null-Werts fehlgeschlagen ist. Beim Debuggen des Problems habe ich Folgendes in der Konsolenstatusleiste versucht:

> 0 == ''
< true

Ich scheine zu wissen, wo das Problem liegt. . . Ich verstehe die Beurteilungslogik von == nicht genau, daher habe ich vor, die offizielle Dokumentation zu finden und einen Blick darauf zu werfen.

Offizielle Erklärung

Gleichheit (==, !=)

1 Wenn die Typen der beiden Ausdrücke unterschiedlich sind, versuchen Sie, sie in eine Zeichenfolge umzuwandeln. Zahl oder Boolescher Wert.

2. NaN ist nicht gleich etwas, einschließlich sich selbst.

3. Negative Null ist gleich positive Null.

4 .

5. Werte gelten als gleich, wenn es sich numerisch um identische Zeichenfolgen handelt äquivalente Zahlen, dasselbe Objekt, identische boolesche Werte oder (wenn verschiedene Arten) können sie in eine dieser Situationen gezwungen werden.

Jeder andere Vergleich gilt als ungleich.

Sehen Sie sich die offizielle Erklärung der Gleichheit an und sehen Sie sich die erste an wissen, warum das Ergebnis wahr ist. Wenn die Typen beider Seiten des Ausdrucks inkonsistent sind, versucht die Vergleichsmethode zunächst, sie in eine Zeichenfolge, eine Zahl oder einen Booleschen Wert umzuwandeln, und führt dann den Vergleich durch (gleiche Bedingungen: dieselbe Zeichenfolge, mathematisch gleiche Zahlen, dasselbe Objekt, den gleichen booleschen Wert).
Wenn man das sieht, ist es im Grunde klar, wer zuerst konvertiert wurde.

> Number('')
< 0

> var b= ''
> b.toString()
<'0'

Es ist sehr offensichtlich, dass bei int == string der String zuerst in den entsprechenden int-Wert konvertiert und dann verglichen wird.

Wie kann man es vermeiden?

Das Folgende führt stark === (strikte Gleichheit) ein. Genau genommen sieht es sehr kraftvoll aus. Sein offizieller Name ist Identity (===. !==). „Identity“ hat das Gefühl eines spannenden Genres zur Aufklärung von Kriminalität.
Sehen Sie sich die offizielle Einführung an:

Identity (===. !==)
Diese Operatoren verhalten sich identisch mit dem Gleichheitsoperatoren, außer dass keine Typkonvertierung durchgeführt wird und die Typen dies tun müssen gleich sein, um als gleich angesehen zu werden.

Wenn in der täglichen Entwicklung keine Garantie dafür besteht, dass die im Vergleichsausdruck verwendeten Variablentypen zweimal konsistent sind, wird empfohlen, zum Vergleichen Identifizieren (===) zu verwenden ob sie gleich sind. Wenn die Variablentypen konsistent sind, können Sie zum Vergleich direkt Gleichheit (==) verwenden.

Das obige ist der detaillierte Inhalt vonErläuterung der Verwendung von Equality(==) in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen