Heim  >  Artikel  >  Web-Frontend  >  Sollte ich in der JavaScript-Antwort „==' oder „===' verwenden?

Sollte ich in der JavaScript-Antwort „==' oder „===' verwenden?

高洛峰
高洛峰Original
2016-11-26 13:19:201336Durchsuche

=== 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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn