Freecodecamp: === ist nicht das Gegenteil von! ==

Erstellt am 22. Nov. 2016  ·  13Kommentare  ·  Quelle: freeCodeCamp/freeCodeCamp


Name der Herausforderung


https://www.freecodecamp.com/challenges/comparison-with-the-strict-inequality-operator

Fehlerbeschreibung


Eigentlich ist! == nicht das Gegenteil des strengen Gleichheitsoperators. === bedeutet gleicher Wert UND gleicher Typ. ! == bedeutet nicht gleicher Wert oder nicht gleicher Typ. Das heißt, wenn eine Bedingung wahr ist, gibt der Ausdruck wahr zurück. Für einen strengen Gleichheitsoperator müssen beide Bedingungen wahr sein. Ich denke, diese Informationen sollten bereitgestellt werden.

Browser-Informationen

  • Browsername, Version: Google Chrome, 54.0.2840.99 m (64-Bit)
  • Betriebssystem: Windows 10
  • Mobil, Desktop oder Tablet: Desktop
help wanted

Hilfreichster Kommentar

Ich mag möglicherweise die Idee, das Wort "logisch" wie folgt hinzuzufügen:

Der Operator für strikte Ungleichheit (! ==) ist das logische Gegenteil des Operators für strikte Gleichheit.

Und dann fügen wir vielleicht einen MDN-Link zur obigen Site hinzu?

Alle 13 Kommentare

Es ist nicht gleichwertig und / oder nicht gleichwertig. Siehe hier: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

Ich denke, das Gefühl ist immer noch richtig. Aber andere können wiegen.

Wir könnten die Anweisungen neu schreiben, um die und / oder die Natur von !== widerzuspiegeln

Operand 1 | Operand 2 | Staat |
--------------- | ---------------- | ----------- |
'One String' | 'Noch ein String' | true
1 | 2 | true
1 | '1' | true
4 | 4 | false
'String' | 'String' | false

@Bouncey, aber ist !== das akzeptierte Gegenteil von === ? Oder gibt es eine Alternative, die mir nicht bekannt ist?

@dhcodes ist es und es ist irgendwie nicht

Das Problem ist mit dieser Zeile in unseren Herausforderungsanweisungen

Der Operator für strikte Ungleichheit ( !== ) ist das Gegenteil des Operators für strikte Gleichheit.

Wenn der Operator für strikte Gleichheit erfordert, dass sowohl Typ als auch Wert gleich sind, um als true , erfordert der Operator für strikte Ungleichheit, dass entweder der Typ ODER der Wert unterschiedlich ist, um als true .

Wenn Sie es als das "Gegenteil" beschreiben, müssen sich Typ und Wert unterscheiden, um als wahr zu gelten

Wir könnten die Anweisungen umformulieren, um den Unterschied des strengen Ungleichungsoperators widerzuspiegeln

Aus logischer Sicht denke ich, dass !== das logische Gegenteil von === :
Angenommen, === kann als Operand1 AND Operand2 , dann wäre das Gegenteil NOT(Operand1 AND Operand2) . Dies kann als NOT(Operand1) OR NOT(Operand2) , was !== . Ich kann jedoch sehen, wo die Mehrdeutigkeit in den Anweisungen liegt und warum dies verwirrend sein kann.

Ich stimme @dhcodes und @robbawebba zu. Während ich meine Argumentation aufschrieb, machte Rob einen viel besseren Job. Die einzige Ausnahme ist NaN , was nicht gleich ist.
Ich habe einen Codepen geschrieben, um meine Annahmen durchzusetzen (Wortspiel beabsichtigt). Falls jemand Codebeispiele bevorzugt, ist hier mein Durcheinander: http://codepen.io/Timoh/pen/ZBKBdL?editors=0012

Ich bin nicht dagegen, es zu ändern; Ich bin mir nur nicht sicher, welche Umschreibung dies bewirken würde, ohne es für den Camper verwirrender zu machen. Danke für das Beispiel @systimotic.

Informationen entfernt

Nicht mehr beitragen

Ich habe beobachtet, dass viele meiner Freunde Fehler in dieser Logik gemacht haben. An den meisten Orten sagen die Leute! == ist das Gegenteil von ===. Sie nehmen also an, dass der Name ! == Nicht gleichwertig und gleichwertig ist === heißt Equal Value und Equal Type . Auch in den meisten Fällen sind die Lernenden Anfänger, daher denke ich, dass zumindest der Name erwähnt werden sollte. Es ist nur mein Vorschlag.
http://www.w3schools.com/js/js_operators.asp

Ich mag möglicherweise die Idee, das Wort "logisch" wie folgt hinzuzufügen:

Der Operator für strikte Ungleichheit (! ==) ist das logische Gegenteil des Operators für strikte Gleichheit.

Und dann fügen wir vielleicht einen MDN-Link zur obigen Site hinzu?

Ja. Es ist eine gute Idee ..... @ dhcodes

Wenn jemand dies aufgreifen möchte, müssen Sie dem Satz das Wort logical hinzufügen:

Der Operator für strikte Ungleichheit (! ==) ist das Gegenteil des Operators für strikte Gleichheit.

um es zu machen:

Der Operator für strikte Ungleichheit (! ==) ist das logische Gegenteil des Operators für strikte Gleichheit.

und ändern Sie die MDN-Link-Datei, um einen Verweis auf den folgenden Link hinzuzufügen, und fügen Sie dann den MDN-Link zur Herausforderung hinzu:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Non -identity_strict_inequality_ (!)

Hinweis: MDN-Links arbeiten derzeit nicht an der Bereitstellung. Spiegeln Sie daher den Code anderer Herausforderungen mit MDN-Links, da derzeit keine Möglichkeit zum lokalen Testen besteht.

Ich würde das gerne aufgreifen, brauche vielleicht Hilfe bei den MDN-Links, habe es aber noch nicht getan.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen