operatori ternari în JavaScript

te-ai săturat să te repeți în timp ce codifici? Încă mai folosești blocurile tradiționale ‘dacă … altfel’? Ce se întâmplă dacă ți-am spus, Ai putea scrie 15 linii de cod în 4 linii? Sunați la 1-800-ternary-operatori acum.

operatorii ternari sunt versiunea prescurtată a declarațiilor if…else. Este singurul operator condițional din JavaScript care ia trei operanzi.

sintaxa de bază pentru operatorii ternari este

condiție ? expresie1 : expresie2

  • unde condiția este valoarea care trebuie testată/evaluată,
  • expresia1 poate fi valoare(valori) de orice tip care trebuie executată dacă condiția este adevărată
  • expresia2 poate fi valoare(valori) de orice tip care trebuie executată dacă expresia1 este falsă, adică valoarea de rezervă cunoscută în mod obișnuit ca” altceva ”
  • „? „înseamnă” dacă „și” : „înseamnă ” altceva”

să ne uităm la un exemplu

dacă ar fi să determinăm dacă cineva are voie să conducă după vârstele lor, folosind declarațiile if…else — arată ceva de genul acesta

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!"

folosind operatori ternari, același cod va arăta astfel

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

Voila! Acest bloc de cod se va traduce în cazul în care variabila ‘ vârstă ‘este mai mare sau egală cu 16, browser-ul ar trebui să alerteze’ ai voie să conduci!’, Altfel ‘ ar trebui să ai 16 ani să conduci!’ar trebui să fie alertat!

un alt motiv pentru a adopta ternary, este flexibilitatea și dimensiunea miniaturală care ar putea încăpea oriunde în codul dvs. De exemplu, dacă doriți să atașați rezultatul șirului dvs. direct la un șir, puteți face acest lucru cu ușurință fără a fi nevoie să vă declarați starea separat.

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

dacă isMember este adevărat , ‘taxa este $2.00’, altfel ‘taxa este $10.00’.

ghici ce?! De asemenea, puteți atribui rezultatele operațiilor ternare variabilelor. Să folosim același exemplu de conducere pe care l-am folosit mai devreme.

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!"

în acest exemplu, am salvat rezultatul într-o variabilă și ulterior l-am afișat în consolă.

există la fel de mult posibil în operatorii ternari ca și în blocul tradițional if…else. Mai mulți operatori ternari pot fi înlănțuiți împreună pentru a forma ceea ce numim” dacă…altfel dacă…altceva ” bloc.

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

blocul de cod de mai sus se va traduce dacă anul este mai mic decât 2018, browserul ar trebui să alerteze ‘prea devreme’, altfel, dacă anul este mai mare decât 2018, va fi afișat ‘prea târziu’, altfel dacă nu este mai mare sau mai mic decât adică egal cu, atunci ‘exact’ va fi afișat.

puteți avea, de asemenea, imbricate dacă declarații:

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

ochii noștri scanează codurile pe verticală, care indentare și spații joacă un rol important în a ne ajuta să citim codurile cu ușurință. Acestea nu sunt excluse în ternar, iar spațiile libere nu vă afectează codul.

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

codul de mai sus va funcționa la fel de bine ca orice evaluare ternară sau orice operațiune if…else.

de asemenea, este posibil să aveți mai multe operații pe caz și să le separați cu o virgulă.

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!')
);

de asemenea, puteți avea mai multe operații și puteți atribui valorile unei variabile. Ultima valoare separată prin virgulă va fi atribuită variabilei.

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"

nu în ultimul rând, operațiile ternare pot fi utilizate pentru a returna valori în funcții. De exemplu, dacă ar fi să scriem o funcție pentru a returna o valoare pentru a determina dacă Chris Pratt este membru al Universului Marvel sau nu;

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!"

observați că am folosit return de mai multe ori și a trebuit să scriem declarația if…else și să încorporăm valorile lor în paranteze cret etc., ceea ce este minunat. Dar poate fi scurtat folosind operatori ternari. Același cod de mai sus va fi evaluat ca atare în funcționarea ternară;

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!"

Notă: toate variabilele utilizate într-o operație ternară trebuie definite înainte de crearea operației.

dacă ați ajuns până aici, vă mulțumesc!

Simțiți-vă liber să mă adăugați pe Twitter și pe Instagram

Lasă un răspuns

Adresa ta de email nu va fi publicată.