Brug af && og || uden for en if-klausul i JavaScript
Du har måske brugt operatørerne &&
og ||
, når du har skrevet en betingelse i en if
-klausul. Men vidste du, at de i JavaScript evaluerer til udtryksværdierne, f.eks. strenge og tal, i stedet for de boolske værdier true
og false
?
Dette gør det muligt at bruge operatorerne &&
og ||
i udtryk uden for if
-klausulen. Det giver korte måder at udtrykke et tidligt stop på ved hjælp af &&
og at udtrykke en standardværdi ved hjælp af ||
.
If-klausulen opererer med sandhedsværdier og falske værdier
Den kendsgerning, at &&
– og ||
-operatorerne evaluerer til strenge og tal, bryder ikke if
-klausulen, fordi betingelser evalueres anderledes i JavaScript.
I stedet for at if
-klausulen beslutter sit næste træk ud fra, om betingelsen er true
eller false
, beslutter den ud fra, om betingelsen er sandfærdig eller falsy.
Definitionen er
En værdi er falsy, hvis den er
false
,null
,undefined
,''
,0
ellerNaN
. En truthy-værdi er enhver værdi, der ikke betragtes som falsy.
Lad os tage disse oplysninger i brug.
Brug && for at sikre dig mod udefinerede
En almindelig situation er at få adgang til egenskaber for indlejrede objekter ved hjælp af punktnotation. For eksempel request.session.id
. I dette tilfælde vil der, hvis et objekt undervejs er undefined
en “Uncaught TypeError: Cannot read property of undefined”-fejl.
Fejlen kan undgås ved hjælp af &&
for at sikre sig mod undefined.
Her evaluerer udtrykket til undefined
sikkert uden at kaste en fejl.
Definitionen for &&
er
Den
&&
-operator evaluerer til venstre sideudtrykket, hvis det er fejlfrit, ellers til højre sideudtrykket.
Brug || til at angive standardværdi
Et andet almindeligt anvendelsestilfælde er at hente en værdi, og hvis den ikke findes, skal der bruges en standardværdi.
Dette kan opnås ved hjælp af ||
-operatoren.
Definitionen for ||
er
||
-operatoren evaluerer til venstre side af udtrykket, hvis det er sandt, ellers til højre side af udtrykket.
Læsbarhed
Disse to nye værktøjer er gode tilføjelser til din værktøjskasse. Men som altid kommer læsbarhed først og fremmest. Brug dem med omtanke, hvor de passer bedst. Husk at sørge for, at alle på dit team ved, hvordan de skal bruges, f.eks. ved at give denne artikel videre til dem.