Tingimuslik kolmekomponendiline operaator JavaScript määrab muutujale väärtuse, mis põhineb mingil tingimusel ja on ainus JavaScripti operaator, kes võtab kolm operandit.
Kolmekomponendiline operaator on asendaja kui avaldus, milles mõlemad kui ja muud klauslid määravad samale väljale erinevad väärtused, näiteks nii:
kui (tingimus)
tulemus = 'midagi';
muud
tulemus = 'millegipärane';
Kolmekomponendiline operaator lühendab selle lause / lause muul viisil ühte avaldusse:
tulemus = (tingimus)? 'midagi': 'millegipärast';
Kui seisund on tõsi, kolmekomponendiline operaator tagastab esimese avalduse väärtuse; vastasel juhul tagastab see teise avaldise väärtuse. Vaatleme selle osi:
- Esiteks looge muutuja, millele soovite väärtuse omistada, antud juhul tulemus. Muutuja tulemus on olekust olenevalt erinev väärtus.
- Pange tähele, et paremal (st operaator ise) on seisund on esimene.
- seisund järgneb alati küsimärk (?), mida võib põhimõtteliselt lugeda kui "kas see oli tõsi?"
- Kaks võimalikku tulemust on viimased, eraldatud kooloniga (:).
See kasutamine kolmepoolne operaator on saadaval ainult siis, kui originaali kui avaldus järgib ülaltoodud vormingut, kuid see on üsna tavaline stsenaarium ja kolmekomponendilise operaatori kasutamine võib olla palju tõhusam.
Ternaaroperaatori näide
Vaatame tõelist näidet.
Võib-olla peate määrama, millised lapsed on lasteaias käimiseks sobivas vanuses. Teil võib olla selline tingimuslik avaldus:
var vanus = 7;
var lasteaed_kõlblik;
kui (vanus> 5) {
lasteaed_kõlblik = "piisavalt vana";
}
veel {
lasteaed_kõlblik = "Liiga noor";
}
Kolmekomponendilise operaatori abil võiksite väljendit lühendada järgmiselt:
var lasteaed_kõlblik = (vanus <5)? "Liiga noor": "piisavalt vana";
See näide tagastaks muidugi sõna "piisavalt vana".
Mitu hindamist
Saate lisada ka mitu hindamist:
var vanus = 7, var sotsiaalselt_ juba = tõsi;
var lasteaed_kõlblik = (vanus <5)? "Liiga noor": sotsiaalselt_valmis
"Piisavalt vana, kuid pole veel valmis" "piisavalt vana ja sotsiaalselt piisavalt küps"
console.log (lasteaed_kõlblik); // logib "piisavalt vana ja sotsiaalselt piisavalt küps"
Mitu operatsiooni
Kolmekomponendiline operaator võimaldab lisada iga avaldise jaoks mitu toimingut, eraldades need komaga:
var vanus = 7, sotsiaalselt_ juba = tõsi;
vanus> 5? (
märguanne ("olete piisavalt vana."),
asukoht.assign ("jätka.html")
): (
sotsiaalselt_ Valmis = vale,
alert ("Vabandust, kuid te pole veel valmis.")
);
Ternaaroperaatori mõjud
Kolmekomponentide operaatorid väldivad muidu paljusust kood, nii et ühelt poolt tunduvad need soovitavad. Teisest küljest võivad need loetavust rikkuda - ilmselgelt on "KUI ELSE" on hõlpsamini mõistetav kui krüptiline "?"
Kolmekomponendilise operaatori või mõne lühendi kasutamisel mõelge, kes teie koodi loeb. Kui võib-olla peavad vähem kogenud arendajad mõistma teie programmi loogikat, tuleks võib-olla vältida kolmekomponendilise operaatori kasutamist. See kehtib eriti juhul, kui teie seisund ja hinnangud on piisavalt keerulised, et peate oma kolmikoperaatori pesa panema või ketti seadma. Tegelikult võivad sellised pesastatud operaatorid mõjutada mitte ainult loetavust, vaid ka silumist.
Nagu iga programmeerimisotsus, kaaluge enne kolmekomponendilise operaatori kasutamist kindlasti konteksti ja kasutatavust.