Ternary JavaScript-operatören som en genväg för if / else-uttalanden

Den villkorade ternära operatören i JavaScript tilldelar ett värde till en variabel baserat på vissa villkor och är den enda JavaScript-operatören som tar tre operander.

Den ternära operatören ersätter en om uttalande där både om och annan klausuler tilldelar olika värden till samma fält, så:

om (villkor)
resultat = 'något';
annan
resultat = 'någotelse';

Den ternära operatören förkortar detta om / annars-uttalande till ett enda uttalande:

resultat = (villkor)? 'något': 'någotelse'; 

Om tillstånd är sant, den ternära operatören returnerar värdet för det första uttrycket; annars returnerar det värdet för det andra uttrycket. Låt oss överväga dess delar:

  • Skapa först den variabel som du vill tilldela ett värde till, i det här fallet, resultat. Variabeln resultat kommer att ha ett annat värde beroende på villkoret.
  • Observera att på höger sida (dvs. operatören själv), tillstånd är först.
  • De tillstånd följs alltid av ett frågetecken (?), som i princip kan läsas som "var det sant?"
  • De två möjliga resultaten kommer sist, separerade av en kolon (:).
instagram viewer

Denna användning av ternär operatör är endast tillgänglig när originalet om uttalandet följer formatet som visas ovan - men detta är ett ganska vanligt scenario och att använda den ternära operatören kan vara mycket effektivare.

Extern ternär operatör

Låt oss titta på ett riktigt exempel.

Kanske måste du bestämma vilka barn som är rätt ålder för att gå i dagis. Du kan ha ett villkorligt uttalande som detta:

var ålder = 7;
var dagis_berättigad;
if (ålder> 5) {
barnehage_eligible = "Tillräckligt gammal";
}
annars {
barnehage_eligible = "För ung";
}

Med den ternära operatören kan du förkorta uttrycket till:

var förskola_berättigad = (ålder <5)? "För ung": "Tillräckligt gammal";

Detta exempel skulle naturligtvis returnera "Tillräckligt gammalt."

Flera utvärderingar

Du kan också inkludera flera utvärderingar:

var ålder = 7, var socially_ready = sant;
var förskola_berättigad = (ålder <5)? "För ung": socialt
"Tillräckligt gammal men ännu inte redo" "Gammal och socialt mogen nog"
console.log (förskola_berättigad); // loggar "Gammalt och socialt mogen nog"

Flera operationer

Den ternära operatören tillåter också inkludering av flera operationer för varje uttryck, åtskilda med komma:

var ålder = 7, socially_ready = sant;
ålder> 5? (
alert ("Du är gammal nog."),
location.assign ( "continue.html")
): (
socially_ready = falskt,
alert ("Tyvärr, men du är ännu inte redo.")
);

Ternära operatörsimplikationer

Ternära operatörer undviker något annat ord koda, så å ena sidan verkar de önskvärda. Å andra sidan kan de äventyra läsbarheten - uppenbarligen är "IF ELSE" lättare att förstå än ett kryptiskt "?".

När du använder en ternär operatör - eller någon förkortning - överväga vem som ska läsa din kod. Om mindre erfarna utvecklare kan behöva förstå din programlogik, kanske användningen av den ternära operatören bör undvikas. Detta gäller särskilt om ditt tillstånd och utvärderingar är tillräckligt komplexa för att du skulle behöva bo eller kedja din ternära operatör. I själva verket kan dessa typer av kapslade operatörer påverka inte bara läsbarheten utan felsökning.

Som med alla programmeringsbeslut måste du tänka på kontext och användbarhet innan du använder en ternär operatör.

instagram story viewer