Maison > Article > interface Web > Pourquoi mon code JavaScript génère-t-il une erreur de syntaxe avec un opérateur ternaire et l'opérateur \' \' ?
Opérateur ternaire et priorité en JavaScript
Le débogage du code peut être déroutant, en particulier lorsqu'il s'agit d'opérateurs complexes comme les expressions ternaires. Examinons un problème spécifique rencontré avec l'opérateur ternaire en JavaScript.
La question :
Un développeur a du mal à comprendre l'extrait de code suivant, en particulier la partie impliquant le ' 'opérateur :
h.className += h.className ? ' error' : 'error'
Le développeur interprète initialement le code comme :
h.className = h.className + h.className ? ' error' : 'error'
Cependant, cette interprétation entraîne une erreur de syntaxe.
La réponse :
La clé pour comprendre ce code réside dans la reconnaissance des règles de préséance en JavaScript. L'opérateur ' ' a une priorité plus élevée que l'opérateur ternaire (?:). Par conséquent, l'interprétation correcte devrait être :
h.className = h.className + (h.className ? ' error' : 'error')
En regroupant explicitement l'expression ternaire entre parenthèses, nous nous assurons qu'elle a préséance sur l'opérateur ' '. De plus, l'opérateur « » effectue ici une concaténation et non une addition, car son but est d'ajouter la chaîne « error » à la fin de h.className.
Conclusion :
Lorsque vous travaillez avec du code complexe impliquant plusieurs opérateurs, il est crucial de comprendre la priorité des opérateurs et comment elle affecte l'ordre des opérations. L'opérateur ternaire est un outil puissant mais doit être utilisé avec précaution pour éviter des résultats inattendus.
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!