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'
On pourrait supposer que le code fonctionne comme suit :
h.className = h.className + h.className ? ' error' : 'error'
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')
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!