https://www.freecodecamp.com/challenges/comparison-with-the-strict-inequality-operator
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.
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.
Hilfreichster Kommentar
Ich mag möglicherweise die Idee, das Wort "logisch" wie folgt hinzuzufügen:
Und dann fügen wir vielleicht einen MDN-Link zur obigen Site hinzu?