Maison > interface Web > js tutoriel > Pourquoi l'opérateur ternaire de JavaScript se comporte-t-il différemment lorsqu'il est utilisé avec l'opérateur ` =` ?

Pourquoi l'opérateur ternaire de JavaScript se comporte-t-il différemment lorsqu'il est utilisé avec l'opérateur ` =` ?

Linda Hamilton
Libérer: 2024-10-29 22:41:03
original
315 Les gens l'ont consulté

Why Does JavaScript's Ternary Operator Behave Differently When Used with the ` =` Operator?

Opérateur ternaire et priorité des opérateurs de JavaScript

Comprendre l'ordre dans lequel les opérations sont effectuées dans le code est crucial pour éviter des résultats inattendus. En JavaScript, l'opérateur ternaire présente un défi courant, en particulier lorsqu'il est combiné avec d'autres opérateurs.

Considérez l'extrait de code suivant :

h.className += h.className ? ' error' : 'error'
Copier après la connexion

On pourrait supposer que le code fonctionne comme suit :

h.className = h.className + h.className ? ' error' : 'error'
Copier après la connexion

Cependant, cette interprétation est incorrecte car elle entraîne une erreur de console. Pour bien comprendre le code, il est essentiel de considérer la priorité des opérateurs.

Réponse :

La clé pour comprendre le code est de se rendre compte que l'opérateur a priorité sur le ternaire opérateur. Par conséquent, le code est évalué comme suit :

h.className = h.className + (h.className ? ' error' : 'error')
Copier après la connexion

Dans ce cas, l'opérateur concatène h.className avec le résultat de l'opérateur ternaire. L'opérateur ternaire vérifie la véracité de h.className et renvoie « error » si c'est vrai, ou « error » dans le cas contraire.

Pour éviter toute confusion, il est conseillé d'être explicite sur la cible de l'opération. Dans ce cas, l'utilisation de parenthèses pour regrouper l'expression garantit que l'opérateur est appliqué à h.className, comme prévu.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal