JavaScript Ternarni operator kao prečac za If / Else izjave

click fraud protection

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

instagram viewer
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.

instagram story viewer