Maison > interface Web > js tutoriel > Nous devons comprendre «==» plus que de l'utiliser du tout.

Nous devons comprendre «==» plus que de l'utiliser du tout.

DDD
Libérer: 2025-01-28 18:31:07
original
599 Les gens l'ont consulté

We should understand `==` more, than not using it at all. Le comportement de l'opérateur

(informatique égale lâche) dans le

javascript est souvent déroutant. Son secret est qu'il préfère la comparaison numérique. À première vue, cela semble étrange, mais une fois que vous comprenez son principe de travail, vous comprendrez les raisons de ce comportement et comment l'utiliser efficacement. ==

de nombreuses priorités

Selon la spécification ECMAScript,

Le symbole opérationnel suit l'algorithme de comparaison == Résumé . Cet algorithme a un biais évident: il préfère convertir la valeur en nombres avant comparaison. Le principe de travail est le suivant:

Si une valeur est
    numéro
  1. , et que l'autre valeur est chaîne , la chaîne se convertira en nombres. Si une valeur est
  2. valeur booléenne
  3. , il le convertit en nombres (vrai à 1, faux converti en 0). Si une valeur est
  4. objet
  5. (comme un tableau), utilisez un fonctionnement toprimitif pour le convertir en valeur d'origine, puis répétez ce processus.
  6. Cela signifie que lorsque vous utilisez
, JavaScript effectue généralement plus d'opérations que vous ne le pensez dans les coulisses. Ce n'est pas seulement une valeur comparative, mais la première tentative de les convertir en nombres.

== IMPORTANT

Comprendre cette priorité numérique peut vous aider à prédire le comportement

dans différents scénarios. Par exemple:

== Ici, la chaîne "5" est convertie en nombres 5, ce qui est relativement réussi. Cependant, si vous utilisez , le type doit être apparié, il renvoie donc faux.

<code class="language-javascript">console.log(5 == "5"); // true</code>
Copier après la connexion
Ce comportement n'est pas aléatoire, c'est pour en rendre plus facile. Par exemple, si vous comparez un nombre représentant une représentation de chaîne du nombre,

peut le gérer sans avoir besoin de la conversion de type explicite. ===

quand utiliser

== bien que soit généralement plus sûr, dans certains cas,

est également utile. Par exemple, si vous traitez les données qui peuvent apparaître sous la forme de chaîne ou de formulaire numérique (comme la saisie de l'utilisateur du formulaire),

peut simplifier votre code: ==

Ici, permet aux fonctions de traiter la chaîne et les entrées numériques sans avoir besoin d'une logique de vérification de type supplémentaire. === == une perspective plus large ==

Le point clé est
<code class="language-javascript">function isAnswerCorrect(userInput, correctAnswer) {
  return userInput == correctAnswer;
}

console.log(isAnswerCorrect("42", 42)); // true</code>
Copier après la connexion
lui-même n'est pas mauvais, c'est juste un outil. Le vrai problème apparaît lorsque vous l'utilisez de manière déraisonnable, par exemple, comparez les nombres avec le tableau:

==

En effet, le tableau est converti en chaîne ("42"), puis converti en nombres (42). Cependant, ce n'est pas parce que cela ne signifie pas une bonne idée. Le problème ici n'est pas , mais une comparaison sans signification.

== Les symboles opérationnels de JavaScript ont une priorité numérique. Bien que soit généralement un choix plus sûr, dans des scénarios spécifiques, si le type de conversion obligatoire est intentionnel et facile à comprendre, nous devons envisager d'utiliser === car il fait également partie de la langue. ==

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal