Den ternære JavaScript-operatør som en genvej til If / Else-erklæringer

Den betingede ternære operatør i JavaScript tildeler en værdi til en variabel baseret på en eller anden betingelse og er den eneste JavaScript-operatør, der tager tre operander.

Den ternære operatør er en erstatning for en hvis erklæring, hvori begge hvis og andet klausuler tildeler forskellige værdier til det samme felt, sådan:

hvis (betingelse)
resultat = 'noget';
andet
result = 'nogetelse';

Den ternære operatør forkorter denne hvis / andet-erklæring til en enkelt erklæring:

resultat = (betingelse)? 'noget': 'nogetelse'; 

Hvis tilstand er sandt, returnerer den ternære operator værdien af ​​det første udtryk; Ellers returnerer det værdien af ​​det andet udtryk. Lad os overveje dens dele:

  • Opret først den variabel, du vil tildele en værdi til, i dette tilfælde, resultat. Variablen resultat vil have en anden værdi afhængigt af betingelsen.
  • Bemærk, at på højre side (dvs. operatøren selv) er tilstand er først.
  • Det tilstand følges altid af et spørgsmålstegn (?), som dybest set kan læses som "var det sandt?"
  • De to mulige resultater kommer sidst adskilt af en kolon (:).
instagram viewer

Denne brug af ternary operator er kun tilgængelig, når originalen hvis udsagnet følger formatet vist ovenfor - men dette er et ganske almindeligt scenario, og det kan være langt mere effektivt at bruge den ternære operatør.

Ternary operator-eksempel

Lad os se på et reelt eksempel.

Måske er du nødt til at bestemme, hvilke børn der er den rigtige alder til at gå i børnehaven. Du har muligvis en betinget erklæring som denne:

var alder = 7;
var børnehaveberettiget;
hvis (alder> 5) {
børnehave_eligible = "Gammel nok";
}
ellers {
børnehave_eligible = "For ung";
}

Ved hjælp af den ternære operator kan du forkorte udtrykket til:

var børnehaveberettiget = (alder <5)? "For ung": "Gammel nok";

Dette eksempel ville naturligvis vende tilbage "Gammelt nok."

Flere evalueringer

Du kan også medtage flere evalueringer:

var alder = 7, var socially_ready = sandt;
var børnehaveberettiget = (alder <5)? "For ung": socialt
"Gamle nok, men endnu ikke klar" "Gamle og socialt modne nok"
console.log (børnehaveberettiget); // logger "Gamle og socialt modne nok"

Flere operationer

Den ternære operatør tillader også inkludering af flere operationer for hvert udtryk, adskilt af et komma:

var alder = 7, socially_ready = sandt;
alder> 5? (
alarm ("Du er gammel nok."),
location.assign ( "continue.html")
): (
socially_ready = falsk,
alarm ("Beklager, men du er endnu ikke klar.")
);

Ternary Operator Implikationer

Ternære operatører undgår ellers ordret kodepå den ene side ser de ønskelige ud. På den anden side kan de kompromittere læsbarheden - selvfølgelig "IF ELSE" er lettere forstået end et kryptisk "?".

Når du bruger en ternary operator - eller en hvilken som helst forkortelse - skal du overveje, hvem der læser din kode. Hvis mindre erfarne udviklere muligvis bliver nødt til at forstå din programlogik, bør brug af den ternære operatør måske undgås. Dette gælder især, hvis din tilstand og evalueringer er komplekse nok til, at du bliver nødt til at hekke eller kæde din ternære operatør. Faktisk kan disse typer indlejrede operatører påvirke ikke kun læsbarheden men fejlfinding.

Som med enhver programmeringsbeslutning, skal du huske at overveje kontekst og anvendelighed, før du bruger en ternary operator.