Heim > Artikel > Web-Frontend > Sollte ich in der JavaScript-Antwort „==' oder „===' verwenden?
=== sollte in den meisten Fällen verwendet werden. x == null kann nur bei der Erkennung von null/undefiniert verwendet werden, da wir normalerweise nicht zwischen null und undefiniert unterscheiden, d. h. x == null wird als x = betrachtet == null ||. x === Abkürzung für undefiniert. Der Vergleich von
== scheint bequemer zu sein, beispielsweise 1 == '1' , birgt jedoch versteckte Gefahren, beispielsweise falsche Annahmen über Typen.
Beispiel:
if (x == 10) x += 5 www.2cto.com
Wenn das eingehende x die Zeichenfolge „10“ ist, ändert sich das Ergebnis von x in '105'. Die Zeichenfolge „105“ kann in nachfolgenden Vorgängen umgewandelt werden, wodurch versteckte Fehler entstehen.
Darüber hinaus verlassen sich Programmierer möglicherweise unbewusst auf bestimmte Annahmen – beispielsweise sollte der Gleichheitsvergleich transitiv sein, d. h. a = b, b = c, was zu a = c führen sollte . Aber JavaScripts == ist nicht transitiv. Zum Beispiel 0 == '0' , 0 == '' , aber '0' != '' .
== von JS ist also nicht gleich () von Java/C#, da die Java/C#-Sprache erfordert, dass equal() Transitivität gewährleisten muss.
Kurz gesagt, bei der Programmierung im großen Maßstab ist der kleine Komfort von == nicht mit den damit verbundenen Risiken zu vergleichen.
Vorschlag:
Vergessen Sie ==, verwenden Sie einfach ===. ==Es ist ein Designfehler. Es wird versucht, eine Typkonvertierung durchzuführen (nicht vergleichbar mit Java, es ist gut definiert), und die Regeln der Typkonvertierung sind schwer zu merken. Und bricht auch die Transitivität.
Verwenden Sie einfach ===,! ==, Ihr Leben als Javascript-Schreiber wird angenehmer