Javascript Looselyequal-AlgorithmusJavaScript

Javascript-Forum
Guest
 Javascript Looselyequal-Algorithmus

Post by Guest »

Da NaN ungleich zu jedem anderen Wert ist, auch zu einem anderen NaN, warum prüft der Looselyequal-Algorithmus in der Javascript-Spezifikation nicht zuerst, ob einer der Operanden NaN ist? Wenn einer der Operanden NaN ist, ist das Ergebnis falsch und es ist keine weitere Verarbeitung erforderlich.
Das Folgende ist der ==-Algorithmus in der Javascript-Spezifikation:
  • Wenn SameType(x, y) wahr ist, dann
    a. Gibt IsStrictlyEqual(x, y) zurück.
  • Wenn x null und y undefiniert ist, wird true zurückgegeben.
  • Wenn x undefiniert und y null ist , true zurückgeben.
  • HINWEIS: Dieser Schritt wird in Abschnitt B.3.6.2 ersetzt.
  • Wenn x eine Zahl und y ein String ist , zurückkehren ! IsLooselyEqual(x, ! ToNumber(y)).
  • Wenn x ein String und y eine Zahl ist, return ! IsLooselyEqual(! ToNumber(x), y).
  • Wenn x ein BigInt und y ein String ist, dann
    a. Sei n StringToBigInt(y).
    b. Wenn n undefiniert ist, geben Sie false zurück.
    c. Zurückkehren ! IsLooselyEqual(x, n).
  • Wenn x ein String und y ein BigInt ist, return ! IsLooselyEqual(y, x).
  • Wenn x ein Boolescher Wert ist, gebe zurück! IsLooselyEqual(! ToNumber(x), y).
  • Wenn y ein Boolescher Wert ist, return ! IsLooselyEqual(x, ! ToNumber(y)).
  • Wenn x entweder ein String, eine Zahl, ein BigInt oder ein Symbol und y ein Objekt ist, return ! IsLooselyEqual(x, ? ToPrimitive(y)).
  • Wenn x ein Objekt und y entweder ein String, eine Zahl, ein BigInt oder ein Symbol ist, gebe zurück! IsLooselyEqual(? ToPrimitive(x), y).
  • Wenn x ein BigInt und y eine Zahl ist, oder wenn x eine Zahl und y ein BigInt ist, dann
    A. Wenn x nicht endlich ist oder y nicht endlich ist, geben Sie false zurück.
    b. Wenn ℝ(x) = ℝ(y), gib true zurück; andernfalls false zurückgeben.
  • False zurückgeben.
Gemäß diesem Algorithmus, wenn entweder x oder y NaN ist, Schritt 5, 6, 9, 10, 11, 12 kosten Laufzeit und das Ergebnis muss falsch sein.
Wenn der erste Schritt ist:
1.if x or y ist NaN, gibt false zurück.
Der Algorithmus kann dieses Ergebnis sofort abrufen und zurückgeben.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post