L'opérateur ternaire conditionnel dans Javascript attribue une valeur à une variable en fonction d'une condition et est le seul opérateur JavaScript qui accepte trois opérandes.
L'opérateur ternaire se substitue à un si déclaration dans laquelle à la fois le si et autre Les clauses affectent des valeurs différentes au même champ, comme suit:
si (condition)
result = 'quelque chose';
autre
result = 'somethingelse';
L'opérateur ternaire raccourcit cette instruction if / else en une seule instruction:
résultat = (condition)? «quelque chose»: «quelque chose d'autre»;
Si état est vrai, l'opérateur ternaire renvoie la valeur de la première expression; sinon, elle renvoie la valeur de la deuxième expression. Considérons ses parties:
- Créez d'abord la variable à laquelle vous souhaitez affecter une valeur, dans ce cas, résultat. La variable résultat aura une valeur différente selon la condition.
- Notez que sur le côté droit (c'est-à-dire l'opérateur lui-même), le état est le premier.
- le état est toujours suivi d'un point d'interrogation (?), qui peut être essentiellement lu comme "était-ce vrai?"
- Les deux résultats possibles viennent en dernier, séparés par deux points (:).
Cette utilisation du opérateur ternaire n'est disponible que lorsque l'original si L'instruction suit le format indiqué ci-dessus - mais il s'agit d'un scénario assez courant et l'utilisation de l'opérateur ternaire peut être beaucoup plus efficace.
Exemple d'opérateur ternaire
Regardons un exemple réel.
Vous devez peut-être déterminer quels enfants ont l'âge approprié pour fréquenter la maternelle. Vous pourriez avoir une instruction conditionnelle comme celle-ci:
âge var = 7;
var kindergarten_eligible;
si (âge> 5) {
kindergarten_eligible = "Assez vieux";
}
autre {
kindergarten_eligible = "Trop jeune";
}
En utilisant l'opérateur ternaire, vous pouvez raccourcir l'expression à:
var kindergarten_eligible = (âge <5)? "Trop jeune": "Assez vieux";
Cet exemple retournerait, bien sûr, "Assez vieux".
Évaluations multiples
Vous pouvez également inclure plusieurs évaluations:
var age = 7, var socialally_ready = true;
var kindergarten_eligible = (âge <5)? "Trop jeune": déjà socialement
"Assez vieux mais pas encore prêt" "Vieux et assez mature socialement"
console.log (kindergarten_eligible); // enregistre "assez vieux et assez mature socialement"
Opérations multiples
L'opérateur ternaire permet également d'inclure plusieurs opérations pour chaque expression, séparées par une virgule:
var age = 7, socially_ready = true;
âge> 5 ans? (
alert ("Vous êtes assez vieux."),
location.assign ("continue.html")
): (
social_ready = false,
alert ("Désolé, mais vous n'êtes pas encore prêt.")
);
Implications de l'opérateur ternaire
Les opérateurs ternaires évitent le reste verbeux code, donc d'une part, ils semblent souhaitables. D'un autre côté, ils peuvent compromettre la lisibilité - évidemment, "IF ELSE" est plus facile à comprendre qu'un "?" Cryptique.
Lorsque vous utilisez un opérateur ternaire - ou toute abréviation - pensez à qui lira votre code. Si des développeurs moins expérimentés peuvent avoir besoin de comprendre la logique de votre programme, il peut être préférable d'éviter d'utiliser l'opérateur ternaire. Cela est particulièrement vrai si votre état et vos évaluations sont suffisamment complexes pour que vous ayez besoin d'imbriquer ou d'enchaîner votre opérateur ternaire. En fait, ces types d'opérateurs imbriqués peuvent avoir un impact non seulement sur la lisibilité mais aussi sur le débogage.
Comme pour toute décision de programmation, assurez-vous de prendre en compte le contexte et la convivialité avant d'utiliser un opérateur ternaire.