De voorwaardelijke ternaire operator in JavaScript wijst een waarde toe aan een variabele op basis van een bepaalde voorwaarde en is de enige JavaScript-operator die drie operanden nodig heeft.
De ternaire operator is een vervanging voor een als verklaring waarin zowel de als en anders clausules wijzen verschillende waarden toe aan hetzelfde veld, zoals:
if (voorwaarde)
resultaat = 'iets';
anders
result = 'somethingelse';
De ternaire operator verkort deze if / else-instructie tot een enkele instructie:
resultaat = (conditie)? 'iets': 'iets anders';
Als staat is waar, de ternaire operator retourneert de waarde van de eerste uitdrukking; anders retourneert het de waarde van de tweede uitdrukking. Laten we eens kijken naar de onderdelen:
- Maak eerst de variabele waaraan u een waarde wilt toewijzen, in dit geval resultaat. De variabele resultaat zal een andere waarde hebben, afhankelijk van de conditie.
- Merk op dat aan de rechterkant (d.w.z. de operator zelf) de staat is eerste.
- De staat wordt altijd gevolgd door een vraagteken (?), wat in feite kan worden gelezen als "was dat waar?"
- De twee mogelijke resultaten komen als laatste, gescheiden door een dubbele punt (:).
Dit gebruik van de ternaire operator is alleen beschikbaar als het origineel als verklaring volgt het hierboven weergegeven formaat - maar dit is een vrij algemeen scenario en het gebruik van de ternaire operator kan veel efficiënter zijn.
Ternary Operator Voorbeeld
Laten we een echt voorbeeld bekijken.
Misschien moet u bepalen welke kinderen de juiste leeftijd hebben om naar de kleuterschool te gaan. Mogelijk hebt u een voorwaardelijke verklaring als deze:
var leeftijd = 7;
var kindergarten_eligible;
if (leeftijd> 5) {
kindergarten_eligible = "Oud genoeg";
}
anders {
kindergarten_eligible = "Te jong";
}
Met de ternaire operator kunt u de uitdrukking inkorten tot:
var kindergarten_eligible = (leeftijd <5)? "Te jong": "Oud genoeg";
Dit voorbeeld zou natuurlijk "Oud genoeg" retourneren.
Meerdere evaluaties
U kunt ook meerdere evaluaties opnemen:
var leeftijd = 7, var sociaal_klaar = waar;
var kindergarten_eligible = (leeftijd <5)? "Te jong": sociaal_klaar
"Oud genoeg maar nog niet klaar" "Oud en sociaal volwassen genoeg"
console.log (kleuterschool_geschikt); // logs "Oud en sociaal volwassen genoeg"
Meerdere bewerkingen
Met de ternaire operator kunnen ook meerdere bewerkingen voor elke uitdrukking worden opgenomen, gescheiden door een komma:
var leeftijd = 7, sociaal_klaar = waar;
leeftijd> 5? (
alert ("Je bent oud genoeg."),
location.assign ("continue.html")
): (
socially_ready = false,
alert ("Sorry, maar u bent nog niet klaar.")
);
Ternary Operator Implicaties
Ternaire operatoren vermijden anders uitgebreid code, dus aan de ene kant lijken ze wenselijk. Aan de andere kant kunnen ze de leesbaarheid in gevaar brengen - uiteraard is "ALS ANDERS" gemakkelijker te begrijpen dan een cryptisch "?".
Overweeg bij het gebruik van een ternaire operator - of een andere afkorting - wie uw code zal lezen. Als minder ervaren ontwikkelaars uw programmalogica wellicht moeten begrijpen, moet misschien het gebruik van de ternaire operator worden vermeden. Dit is met name het geval als uw toestand en evaluaties complex genoeg zijn dat u uw ternaire operator moet nestelen of ketenen. In feite kunnen dit soort geneste operators niet alleen de leesbaarheid maar ook de foutopsporing beïnvloeden.
Zoals bij elke programmeerbeslissing, moet u de context en bruikbaarheid overwegen voordat u een ternaire operator gebruikt.