Ist ‘!=’ in JavaScript dasselbe wie ‘!==’? [duplicate]

Lesezeit: 2 Minuten

Rogers Benutzeravatar
Roger

Mögliche Duplikate:

Welcher Gleichheitsoperator (== vs. ===) sollte in JavaScript-Vergleichen verwendet werden?
Was ist der Unterschied zwischen den Operatoren != und !== in JavaScript?

Ansehen dieses Bekenntnis:

Ist != das Gleiche wie !== in Javascript?

  • 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. Eben javascript !== – 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

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.

Benutzeravatar von martinr
martinr

Aus JavaScript-Syntax, Operatoren,

!== Nicht identisch

!= Ungleich

UND “Identisch bedeutet gleich und vom gleichen Typ.”

Aus 5.4. Gleichheitsoperatoren:

“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 !=) für Typ Gleichheit ebenso gut wie 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

Benutzeravatar von Sean Devlin
Sean Devlin

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.

Benutzeravatar von Sarfraz
Sarfraz

Es prüft nicht nur den Wert, sondern auch die Art der verglichenen Dinge.

Das ist auch so in PHP und einige andere Sprachen auch.

1406350cookie-checkIst ‘!=’ in JavaScript dasselbe wie ‘!==’? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy