== Vergleichsregel in js

Vorwort

In js ist == ein loser Gleichheitsoperator. Beim Vergleich zweier Operanden wird versucht, eine Typkonvertierung durchzuführen, sodass
beim Vergleich ihrer Werte mit unterschiedlichen Typen die Werte auf beiden Seiten ebenfalls in Zahlen umgewandelt werden wie möglich .

Die Vergleichsregeln für == lauten wie folgt:

  • Sind die Operanden vom gleichen Typ , erfolgt der Vergleich wie folgt:
    • Objekt : Gibt nur dann „true“ zurück, wenn sich die beiden Operanden auf dasselbe Objekt beziehen.
    • String : Gibt nur dann „true“ zurück, wenn die beiden Operanden die gleichen Zeichen haben und in der gleichen Reihenfolge sind;
    • Zahl : Gibt true zurück, wenn die Werte der beiden Operanden gleich sind. +0 und -0 gelten als gleicher Wert. Wenn einer der Operanden NaN ist, wird „false“ zurückgegeben; daher ist NaN niemals gleich NaN;
    • Boolean : „true“ wird nur zurückgegeben, wenn die Operanden beide „true“ oder „false“ sind;
    • Big Int (BigInt): Gibt nur dann „true“ zurück, wenn die beiden Operanden denselben Wert haben;
    • Symbol : Gibt nur dann „true“ zurück, wenn sich beide Operanden auf dasselbe Symbol beziehen.
  • Wenn einer der Operanden null oder undefiniert ist , muss der andere Operand null oder undefiniert sein, um true zurückzugeben. Andernfalls wird false zurückgegeben.
  • Wenn einer der Operanden ein Objekt und der andere ein Grundwert ist, wird das Objekt in den Grundwert konvertiert. In diesem Schritt werden beide Operanden in primitive Werte konvertiert (einer von String, Number, Boolean, Symbol und BigInt);
  • Wenn einer der Operanden ein Symbol ist, der andere jedoch nicht, wird false zurückgegeben.
  • Wenn einer der Operanden ein Boolescher Wert ist und der andere nicht, wird der Boolesche Wert in eine Zahl umgewandelt: „true“ wird in 1 umgewandelt, „false“ wird in 0 umgewandelt. Anschließend werden die beiden Operanden erneut lose verglichen.
  • Zahl == String : String in Zahl konvertieren. Eine fehlgeschlagene Konvertierung führt zu NaN, wodurch sichergestellt wird, dass die Gleichheit falsch ist.
  • Number == BigInt : Vergleichen Sie anhand seines numerischen Werts. Wenn Number ±Infinity oder NaN ist, wird „false“ zurückgegeben.
  • String == BigInt : Konvertiert einen String in einen BigInt mit demselben Algorithmus wie der BigInt()-Konstruktor. Wenn die Konvertierung fehlschlägt, wird false zurückgegeben.
    *

Guess you like

Origin blog.csdn.net/olderandyanger/article/details/135299646
js