soms moeten we verschillende acties uitvoeren op basis van verschillende omstandigheden.
om dat te doen, kunnen we het if
statement gebruiken en de voorwaardelijke operator ?
, dat ook wel een “vraagteken” operator wordt genoemd.
het” if ” statement
hetif(...)
statement evalueert een voorwaarde tussen haakjes en, als het resultaattrue
is, voert een blok code uit.,
bijvoorbeeld:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
in het bovenstaande voorbeeld is de voorwaarde een eenvoudige gelijkheidscontrole (year == 2015
), maar het kan veel complexer zijn.,
als we meer dan één statement willen uitvoeren, moeten we ons codeblok in accolades wikkelen:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
Wij raden aan uw codeblok te wikkelen met accolades {}
elke keer dat u eenstatement, zelfs als er maar één statement is om uit te voeren. Dit verbetert de leesbaarheid.
Boolean conversion
het if (…)
statement evalueert de expressie tussen de haakjes en converteert het resultaat naar een boolean.,
laten we de conversie regels uit het hoofdstuk Type conversies herinneren:
- een nummer
0
, een lege string""
,null
,undefined
, enNaN
allen wordenfalse
. Daarom worden ze “valse” waarden genoemd. - andere waarden worden
true
, dus ze worden”truthy” genoemd.,
Dus, de code onder deze voorwaarde zou nooit uitvoeren:
if (0) { // 0 is falsy ...}
…en in deze situatie, het zal altijd zo blijven:
if (1) { // 1 is truthy ...}
We kunnen ook slagen voor een pre-geëvalueerd boolean-waarde if
, zoals:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
De “anders” – clausule
De if
– instructie bevat een optie “anders” te blokkeren. Het wordt uitgevoerd als de toestand falsy is.,
bijvoorbeeld:
verschillende voorwaarden: “else if”
soms willen we verschillende varianten van een voorwaarde testen. Deelse if
clausule laat ons dat doen.
bijvoorbeeld:
in de bovenstaande code controleert JavaScript eerst year < 2015
. Als dat falsy is, gaat het naar de volgende voorwaarde year > 2015
. Als dat ook falsy is, toont het de laatste alert
.
er kunnen meer else if
blokken zijn. De uiteindelijke else
is facultatief.
voorwaardelijke operator”?,’
soms moeten we een variabele toewijzen afhankelijk van een voorwaarde.
bijvoorbeeld:
de zogenaamde “conditional” of “question mark” operator laat ons dat op een kortere en eenvoudigere manier doen.
de operator wordt weergegeven door een vraagteken ?
. Soms wordt het “ternair” genoemd, omdat de operator drie operanden heeft. Het is eigenlijk de enige operator in JavaScript die zoveel heeft.,
de syntaxis is:
let result = condition ? value1 : value2;
de condition
wordt geëvalueerd: als het waar is, wordtvalue1
geretourneerd, anders – value2
.
bijvoorbeeld:
let accessAllowed = (age > 18) ? true : false;
technisch gezien kunnen we de haakjes rond age > 18
weglaten. De vraagteken operator heeft een lage prioriteit, dus het wordt uitgevoerd na de vergelijking >
.,
dit voorbeeld zal hetzelfde doen als het vorige voorbeeld:
maar haakjes maken de code leesbaarder, dus we raden aan ze te gebruiken.
In het bovenstaande voorbeeld kunt u vermijd het gebruik van het vraagteken exploitant, omdat de vergelijking zelf terug true/false
:
// the samelet accessAllowed = age > 18;
Meerdere ‘?’
a sequence of question mark operators ?
kan een waarde retourneren die van meer dan één voorwaarde afhangt.,
bijvoorbeeld:
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
Het kan in het begin moeilijk zijn om te begrijpen wat er aan de hand is. Maar na een nadere blik kunnen we zien dat het gewoon een gewone reeks tests is:
zo ziet het eruit met if..else
:
if (age < 3) { message = 'Hi, baby!';} else if (age < 18) { message = 'Hello!';} else if (age < 100) { message = 'Greetings!';} else { message = 'What an unusual age!';}
niet-traditioneel gebruik van ‘?,’
Soms is het vraagteken ?
wordt gebruikt als een vervanging voor if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
Afhankelijk van de conditie company == 'Netscape'
, de eerste of de tweede expressie na de ?
wordt uitgevoerd en geeft een waarschuwing.
We kennen hier geen resultaat toe aan een variabele. In plaats daarvan voeren we verschillende code uit, afhankelijk van de conditie.
Het is niet aan te raden om de vraagteken operator op deze manier te gebruiken.,
de notatie is korter dan het equivalent if
statement, wat sommige programmeurs aanspreekt. Maar het is minder leesbaar.
Hier is dezelfde code met if
ter vergelijking:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
onze ogen scannen de code verticaal. Codeblokken die meerdere regels overspannen zijn gemakkelijker te begrijpen dan een lange, horizontale instructieset.,
Het doel van de operator van het vraagteken ?
is om een of andere waarde terug te geven, afhankelijk van de toestand ervan. Gebruik het voor precies dat. Gebruik if
wanneer u verschillende takken van code moet uitvoeren.
Leave a Reply