Uvjetni ternarni operator u JavaScript dodjeljuje vrijednost varijabli na temelju nekog uvjeta i jedini je JavaScript operator koji ima tri operanda.
Ternarni operator je zamjena za an ako izjava u kojoj su oba ako i drugo klauzule istom polju daju različite vrijednosti, poput:
ako (uvjet)
rezultat = 'nešto';
drugo
rezultat = 'somethingelse';
Ternarni operator skraćuje ovu if / else izjavu u jednu izjavu:
rezultat = (uvjet)? 'nešto': 'somethingelse';
Ako stanje istina je, ternarni operator vraća vrijednost prvog izraza; u protivnom vraća vrijednost drugog izraza. Razmotrimo njegove dijelove:
- Prvo napravite varijablu kojoj želite dodijeliti vrijednost, u ovom slučaju, proizlaziti. Varijabla proizlaziti imat će različitu vrijednost ovisno o stanju.
- Imajte na umu da je na desnoj strani (tj. Sam operator) stanje je prvi.
- stanje uvijek slijedi upitnik (?), što se u osnovi može čitati kao "je li to istina?"
- Dva moguća rezultata su posljednja, odvojena dvotočkom (:).
Ova upotreba ternarni operator dostupan je samo kada je izvornik
ako Izjava slijedi gore prikazani format - ali to je prilično uobičajen scenarij, a korištenje ternarnog operatera može biti daleko efikasnije.Primjer terminala
Pogledajmo pravi primjer.
Možda trebate odrediti koja su djeca prave dobi za pohađanje vrtića. Možda imate uvjetnu izjavu poput ove:
var dob = 7;
var vrtić_izborno;
ako (dob> 5) {
vrtić_eligible = "Dovoljno star";
}
drugo {
vrtić_eligible = "Premladak";
}
Korištenjem ternarnog operatera, možete skratiti izraz na:
var vrtić_eligible = (dob <5)? "Premlada": "Dovoljno stara";
Ovaj bi se primjer, naravno, vratio „Dovoljno staro“.
Višestruke ocjene
Možete uključiti i više evaluacija:
var age = 7, var socially_ready = true;
var vrtić_eligible = (dob <5)? "Premlada": društveno već
"Dovoljno stari, ali još nije spreman" "Dovoljno star i društveno zreo"
console.log (vrtić_izborno); // zapisuje "dovoljno stari i društveno zreli"
Više operacija
Ternarni operator također omogućuje uključivanje više operacija za svaki izraz, odvojenih zarezom:
var age = 7, socially_ready = istina;
dob> 5? (
upozorenje ("Dovoljno si star."),
location.assign ( "") continue.html
): (
socially_ready = lažno,
upozorenje ("Izvini, ali još nisi spreman.")
);
Posljedice za teritorijalnog operatera
Ternarni operatori izbjegavaju inače verbose kodirati, s jedne strane izgledaju poželjno. S druge strane, oni mogu ugroziti čitljivost - očigledno je da je "AKO JE ELSE" lakše razumjeti nego zagonetni "?".
Kada koristite ternarnog operatora - ili bilo koju kraticu - razmislite o tome tko će čitati vaš kôd. Ako manje iskusni programeri možda trebaju razumjeti logiku vašeg programa, možda treba izbjegavati upotrebu ternarnog operatora. Ovo je posebno točno ako su vaše stanje i procjene dovoljno složeni da biste trebali gnijezditi ili vezati svog ternarnog operatera. U stvari, ove vrste ugniježđenih operatora mogu utjecati ne samo na čitljivost, već i uklanjanje pogrešaka.
Kao i kod svake programske odluke, prije korištenja ternarnog operatera, uzmite u obzir kontekst i upotrebljivost.