ternære operatører i JavaScript

er du træt af at gentage dig selv under kodning? Bruger du stadig de traditionelle ‘hvis…ellers’ blokke? Hvad hvis jeg fortalte dig, du kunne skrive 15 linjer kode i 4 linjer? Ring til 1-800-ternære-operatører nu.

ternære operatører er den stenografiske version af If … else-udsagn. Det er den eneste betingede operatør i JavaScript, der tager tre operander.

den grundlæggende syntaks for ternære operatører er

tilstand? udtryk1 : Udtryk2

  • hvor betingelsen er den værdi, der skal testes/evalueres, kan
  • udtryk1 være værdi (er) af enhver type, der skal udføres, hvis betingelsen er sand
  • Udtryk2 kan være værdi(er) af enhver type, der skal udføres, hvis udtryk1 er falsk, dvs.tilbagefaldsværdi, der almindeligvis kendes som ‘ellers’
  • ” ? “betyder ” hvis”, og” : “betyder ” andet”

lad os se på et eksempel

hvis vi skulle afgøre, om man får lov til at køre efter deres alder, ved hjælp af If…else — udsagnene-det ser sådan ud

var age = 18;if (age >= 16) {
alert("You're allowed to drive!");
}else {
alert("You should be 16 to drive!");
}// "You're allowed to drive!"

ved hjælp af ternære operatører, vil den samme kode se sådan ud

var age = 18;alert (age >= 16) ? "You're allowed to drive!" : "You should be 16 to drive!"// You're allowed to drive!

Voila! Denne blok af kode vil oversætte til hvis variabel ‘alder’ er større eller lig med 16, skal bro. ser advare ‘du har lov til at køre!’, Ellers ‘ skal du være 16 til at køre!’bør advares!

en anden grund til at vedtage ternary, er det fleksibilitet og miniature størrelse, som kunne passe overalt i din kode. For eksempel, hvis du vil vedhæfte resultatet af din streng direkte til en streng, kan du nemt gøre det uden at skulle erklære din tilstand separat.

var isMember = true;
'The fee is ' + (isMember ? '.00' : '.00'); // The fee is .00

hvis isMember er sandt , ‘gebyret er $2,00’, ellers ‘gebyret er $10,00’.

gæt hvad?! Du kan også tildele resultaterne af de ternære operationer til variabler. Lad os bruge det samme køreeksempel, som vi brugte tidligere.

var age = 18;
var canDrive = (age >= 16) ? "You're allowed to drive!" : "You should be 16 to drive!";
console.log(canDrive); // "You're allowed to drive!"

i dette eksempel gemte vi resultatet i en variabel og viste det senere i konsollen.

der er lige så meget muligt i ternære operatører som i den traditionelle if…else-blok. Flere ternære operatører kan kædes sammen for at danne det, vi kalder” Hvis…ellers hvis…ellers ” blok.

var year = prompt('Which year was the 2018 World Cup?', '');
alert(year < 2018) ? 'Too early' : (year > 2018) ? 'Too late' : 'Exactly!'; // Exactly!

kodeblokken ovenfor oversættes, hvis året er mindre end 2018, bro.sereren skal advare ‘for tidligt’, ellers, hvis året er større end 2018, ‘for sent’ vises, ellers hvis det ikke er større eller mindre end dvs.lig med, vises ‘nøjagtigt’.

du kan også have indlejret if-udsagn:

var statement1 = true;
var statement2 = true;var check = statement1 ? (statement2 ? "True, Yes!" : "True, False!") : 'False';console.log(check); // True, Yes!

vores øjne scanner koder lodret, hvilken indrykning og mellemrum spiller store dele for at hjælpe os med at læse koderne let. De er ikke udelukket i ternære, og frie rum påvirker ikke din kode.

var stop = false, age = 23;
age > 18 ? (
alert('OK, you can go.')
) : (
alert('Sorry, you are much too young!')
);

koden ovenfor fungerer lige så godt som enhver ternær evaluering eller enhver if…else-operation.

det er også muligt at have flere operationer pr.

var stop = false, age = 23;
age > 18 ? (
alert('OK, you can go.'),
location.assign('continue.html')
) : (
stop = true,
alert('Sorry, you are much too young!')
);

du kan også have flere operationer og tildele værdierne til en variabel. Den sidste kommaseparerede værdi tildeles variablen.

var age = 16;
var auth = age > 18 ? (
alert('OK, you can go.'),
// alert returns "undefined", but it will be ignored because
// isn't the last comma-separated value of the parenthesis
'APPROVED' // the value to be assigned if age > 18
) : (
alert('You are much too young!'),
alert('Sorry :-('),
// etc. etc.
'DISAPPROVE' // the value to be assigned if !(age > 18)
);
location.assign(auth); // "DISAPPROVE"

sidst men ikke mindst kan ternære operationer bruges til at returnere værdier i funktioner. For eksempel, hvis vi skulle skrive en funktion for at returnere en værdi for at afgøre, om Chris Pratt er medlem af Marvel Universe eller ej;

var marvel = true;function chrisPratt(marvel) {
if (marvel === true){
return "I am Star-Lord!";
}
else {
return "Have you watched Guardians of the Galaxy?";
}}
var output = chrisPratt(marvel);
console.log(output); // "I am Star-Lord!"

Bemærk, at vi brugte retur flere gange og måtte skrive if…else-erklæringen og indlejre deres værdier i krøllede parenteser osv., hvilket er fantastisk. Men det kan forkortes ved hjælp af ternære operatører. Den samme kode ovenfor vil blive evalueret som sådan i ternær drift;

var marvel = true;function chrisPratt(marvel) {
return (marvel === true) ? "I am Star-Lord!" : "Have you watched Guardians of the Galaxy?";
}
var output = chrisPratt(marvel);
console.log(output); // "I am Star-Lord!"

Bemærk: alle variabler, der anvendes i en ternær operation, skal defineres, før operationen oprettes.

hvis du nåede så langt, tak!

velkommen til at tilføje mig på kvidre og på Instagram

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.