In JavaScript ist != dasselbe wie !== [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
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?

  • 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.

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.

Benutzer-Avatar
Sarfraz

Überprüft nicht nur den Wert, sondern auch die Art der verglichenen Dinge. Dies gilt auch für PHP und einige andere Sprachen.

1100960cookie-checkIn JavaScript ist != dasselbe wie !== [duplicate]

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

Privacy policy