Mögliche Duplikate:
Javascript === vs == : Spielt es eine Rolle, welchen „Gleich“-Operator ich verwende?
Javascript-Operator !==
Ansehen dieses Bekenntnis
Ist !=
gleich wie !==
in Javascript?
Roger
Mögliche Duplikate:
Javascript === vs == : Spielt es eine Rolle, welchen „Gleich“-Operator ich verwende?
Javascript-Operator !==
Ansehen dieses Bekenntnis
Ist !=
gleich wie !==
in Javascript?
Sie sind subtil nicht gleich.
!=
prüft den Wert
!==
prüft Wert und Typ
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
Im vorherigen Beispiel. Die erste Hälfte des Ausdrucks ist ein String, die zweite Hälfte eine ganze Zahl.
Aus
http://en.wikipedia.org/wiki/JavaScript_syntax#Operatoren
!== Nicht identisch
!= Ungleich
UND “Identisch bedeutet gleich und vom gleichen Typ.”
Aus
http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm
“In JavaScript werden Zahlen, Strings und boolesche Werte nach Wert verglichen. … Andererseits werden Objekte, Arrays und Funktionen nach Referenz verglichen.”
—
Sind sie also zusammenfassend gleich? Nein, denn es gibt einen zusätzlichen Test mit !== (über !=) sowohl auf Typgleichheit als auch auf Gleichheit.
Nein, es ist nicht dasselbe. Siehe zum Beispiel hier.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
Und für die Vollschlanke gibt es nichts Besseres als die Spezifikation. Hier können Sie die neuesten herunterladen: ecma-international.org/publications/files/drafts Es ist die PDF-Datei, die mit „tc39-“ beginnt (zum jetzigen Zeitpunkt tc39-2009-050.pdf). Das heißt, es ist ein Entwurf, aber er wurde Anfang dieses Monats durchgestimmt.
– TJ Crowder
22. Dezember 2009 um 12:42 Uhr
Und siehe stackoverflow.com/questions/359494/… wie man die Spezifikation liest!
– Nämlich
22. Dezember 2009 um 13:21 Uhr
Hehe, die Tatsache, dass man ein Handbuch braucht, um eine Spezifikation zu lesen, sagt wirklich etwas über die Qualität der Spezifikation selbst aus 🙂
– Fortega
22. Dezember 2009 um 13:29 Uhr
Der große Unterschied besteht darin, dass != eine Typumwandlung durchführt. Das heißt, ein Wert wird effektiv in den anderen umgewandelt, bevor die Gleichheit überprüft wird. Aus diesem Grund, wie in Amadieres Antwort:
'1' != 1
wird als falsch ausgewertet. Dasselbe gilt für == v. ===. Vermeiden Sie im Allgemeinen == und !=, es sei denn, Sie möchten ausdrücklich, dass Zwang ausgeführt wird. Verwenden Sie === und !== und suchen Sie nach genau dem Ergebnis, das Sie suchen.
Sarfraz
Überprüft nicht nur den Wert, sondern auch die Art der verglichenen Dinge. Dies gilt auch für PHP und einige andere Sprachen.
Siehe stackoverflow.com/questions/359494/javascript-vs
– Schwimmbad
22. Dezember 2009 um 12:31 Uhr
@S.Lott: Er musste wissen, dass sie zum einen “Javascript-Vergleichsoperatoren” genannt wurden – was die Frage nicht impliziert (um dem ursprünglichen Poster gerecht zu werden).
– Amadiere
22. Dezember 2009 um 12:39 Uhr
Versuchen Sie einzutippen
!==
in Google und sehen Sie, welche Ergebnisse Sie erhalten. Ebenjavascript !==
– Google hilft also nicht– Mottie
22. Dezember 2009 um 12:42 Uhr
Ein weiterer Dupe speziell für
!=
: stackoverflow.com/questions/1889260/javascript-operator– Halbmondfrisch
22. Dezember 2009 um 13:40 Uhr
@fudgey: Sie können Google nach vielen Dingen durchsuchen. Vielleicht hat er es nicht gefunden. SLotts Kommentar ist falsch
– Benutzer195488
22. Dezember 2009 um 14:26 Uhr