Heim >Web-Frontend >js-Tutorial >Wir sollten `==` mehr verstehen, als es überhaupt nicht zu verwenden.

Wir sollten `==` mehr verstehen, als es überhaupt nicht zu verwenden.

DDD
DDDOriginal
2025-01-28 18:31:07600Durchsuche

We should understand `==` more, than not using it at all. Das Verhalten des

-Operators (loses gleiches Computer) im

JavaScript ist oft verwirrend. Sein Geheimnis ist, dass es numerischen Vergleich bevorzugt. Auf den ersten Blick erscheint dies seltsam, aber sobald Sie sein Arbeitsprinzip verstanden haben, werden Sie die Gründe für dieses Verhalten verstehen und wie Sie es effektiv einsetzen. ==

zahlreiche Priorität

Gemäß der ECMAScript -Spezifikation folgt

das operative Symbol dem == abstrakten Vergleichsalgorithmus . Dieser Algorithmus hat eine offensichtliche Verzerrung: Er bevorzugt es, den Wert vor dem Vergleich in Zahlen umzuwandeln. Das Arbeitsprinzip ist wie folgt:

Wenn ein Wert
    Zahl
  1. ist und der andere Wert String ist, konvertiert der String in Zahlen. Wenn ein Wert
  2. boolescher Wert
  3. ist, wandelt er ihn in Zahlen um (treu auf 1, falsch konvertieren auf 0). Wenn ein Wert
  4. Objekt
  5. (z. B. ein Array) ist, verwenden Sie den Toprimitive -Betrieb, um ihn in seinen ursprünglichen Wert umzuwandeln, und wiederholen Sie diesen Vorgang.
  6. Dies bedeutet, dass JavaScript, wenn Sie
verwenden, normalerweise mehr Operationen ausführt, als Sie hinter den Kulissen erkennen. Es ist nicht nur ein vergleichender Wert, sondern der erste Versuch, sie in Zahlen umzuwandeln.

== wichtig

Verständnis dieser numerischen Priorität kann Ihnen helfen, das Verhalten in verschiedenen Szenarien vorherzusagen. Zum Beispiel:

Hier wird die Zeichenfolge "5" in die Zahlen 5 umgewandelt, was relativ erfolgreich ist. Wenn Sie jedoch verwenden, muss der Typ übereinstimmen, sodass er falsch zurückgibt. ==

Dieses Verhalten ist nicht zufällig, es ist einfacher, etwas einfacher zu machen. Wenn Sie beispielsweise eine Zahl vergleicht, die eine Zeichenfolgendarstellung der Zahl darstellt, kann
<code class="language-javascript">console.log(5 == "5"); // true</code>
sie ohne explizite Typumwandlung verarbeiten.

=== wann verwendet

Obwohl normalerweise sicherer ist, ist in einigen Fällen auch == nützlich. Wenn Sie beispielsweise die Daten verarbeiten, die möglicherweise in Form von String oder digitalem Formular angezeigt werden (z. B. die Benutzereingabe aus dem Formular), kann

Ihren Code vereinfachen:

==

Hier ermöglicht es Funktionen, String und digitale Eingaben zu verarbeiten, ohne dass zusätzliche Typ -Check -Logik erforderlich ist.

=== Eine breitere Perspektive == == Der Schlüsselpunkt ist

selbst ist nicht schlecht, es ist nur ein Werkzeug. Das eigentliche Problem erscheint, wenn Sie es auf unangemessene Weise verwenden, beispielsweise die Zahlen mit dem Array vergleiche:
<code class="language-javascript">function isAnswerCorrect(userInput, correctAnswer) {
  return userInput == correctAnswer;
}

console.log(isAnswerCorrect("42", 42)); // true</code>

== Dies liegt daran, dass das Array in eine Zeichenfolge ("42") konvertiert und dann in Zahlen (42) umgewandelt wird. Nur weil es effektiv ist, bedeutet dies keine gute Idee. Das Problem hier ist nicht , sondern einen bedeutungslosen Vergleich.

== Die operativen Symbole in JavaScript haben numerische Priorität. Obwohl normalerweise eine sicherere Wahl ist, sollten wir in bestimmten Szenarien in Betracht ziehen, wenn die Art der obligatorischen Umwandlung absichtlich und leicht zu verstehen ist, in Betracht ziehen, === zu verwenden, da sie auch Teil der Sprache ist. ==

Das obige ist der detaillierte Inhalt vonWir sollten `==` mehr verstehen, als es überhaupt nicht zu verwenden.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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