noen Ganger, vi trenger for å utføre forskjellige handlinger basert på ulike forhold.
for Å gjøre det, kan vi bruke if
uttalelse og betinget operatør ?
, som også kalles en «spørsmålstegn» operatør.
«hvis» – uttalelse
if(...)
uttalelse vurderer en tilstand i parentes, og dersom resultatet er true
, utfører en blokk med kode.,
For eksempel slik:
– >
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
I eksempelet ovenfor, tilstanden er en enkel likestilling sjekk (year == 2015
), men det kan være mye mer komplekse.,
Hvis vi ønsker å utføre mer enn én uttalelse, vi trenger å pakke våre kode blokk inne krøllparentes:
– >
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
Vi anbefaler pakke koden blokk med krøllparentes {}
hver gang du bruker en if
uttalelse, selv om det er bare én uttalelse som skal utføres. Gjør slik forbedrer lesbarheten.
Boolsk konvertering
if (…)
uttalelse evaluerer uttrykk i sine parenteser og konverterer resultatet til en boolsk.,
La oss huske konvertering regler fra kapittel Type Konverteringer:
- Et antall
0
, en tom streng""
,null
,undefined
, ogNaN
alle blifalse
. På grunn av at de er kalt «falsy» verdier. - Andre verdier bli
true
, slik at de blir kalt «truthy».,
Så, koden under denne tilstanden ville aldri utfør:
– >
if (0) { // 0 is falsy ...}
…og inne i denne tilstanden – det vil alltid:
– >
if (1) { // 1 is truthy ...}
kan Vi også sende en pre-evaluert boolske verdien til if
, som dette:
– >
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
«annet» punkt
if
uttalelsen kan inneholde en ekstra «annet» – blokken. Det utføres når tilstanden er falsy.,
For eksempel slik:
Flere forhold: «else if»
noen Ganger, vi ønsker å teste ut flere varianter av en tilstand. else if
klausulen lar oss gjøre det.
For eksempel slik:
I koden ovenfor, JavaScript først sjekker year < 2015
. Hvis det er falsy, det går til neste tilstand year > 2015
. Dersom det er også falsy, det viser de siste alert
.
Det kan være mer else if
blokker. Den endelige else
er valgfritt.
Betinget operator ‘?,’
noen Ganger trenger vi å tilordne en variabel avhengig av en betingelse.
For eksempel:
Den såkalte «betinget» eller «spørsmålstegn» operatør lar oss gjøre som i en kortere og enklere måte.
operatøren er representert ved et spørsmålstegn ?
. Noen ganger er det som kalles «trefoldig», fordi operatøren har tre operander. Det er faktisk den eneste operatøren i JavaScript som har som mange.,
syntaksen er:
– >
let result = condition ? value1 : value2;
condition
er evaluert: hvis det er truthy deretter value1
returneres, ellers – value2
.
For eksempel slik:
– >
let accessAllowed = (age > 18) ? true : false;
Teknisk, vi kan utelate parenteser rundt age > 18
. Spørsmålstegnet operatøren har en lav prioritet, slik at det kjører når sammenligningen >
.,
Dette eksemplet vil gjøre det samme som den forrige:
Men parentes gjøre koden mer lesbar, så vi anbefaler at du bruker dem.
I eksempelet ovenfor, kan du unngå ved å bruke spørsmålstegn operatør fordi sammenligningen i seg selv returnerer true/false
:
– >
// the samelet accessAllowed = age > 18;
Flere ‘?’
En sekvens av spørsmålstegn operatører ?
kan returnere en verdi som avhenger av mer enn én tilstand.,
For eksempel:
– >
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
Det kan være vanskelig ved første til å forstå hva som skjer. Men etter en nærmere titt, vi kan se at det er bare en vanlig sekvens av tester:
Her er hvordan det ser ut ved hjelp av 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!';}
Ikke-tradisjonell bruk av ‘?,’
noen Ganger spørsmålstegn ?
brukes som en erstatning for if
:
– >
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
Avhengig av tilstanden company == 'Netscape'
, enten første eller andre uttrykk etter ?
blir utført og viser et varsel.
Vi ikke tilordne et resultat til en variabel her. I stedet, vi utføre forskjellige koden avhengig av tilstanden.
Det er ikke anbefalt å bruke spørsmålstegn operatør på denne måten.,
notasjonen er kortere enn den tilsvarende if
uttalelse, som appellerer til noen programmerere. Men det er mindre lesbar.
Her er den samme koden med if
for sammenligning:
– >
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
Våre øyne skanne koden vertikalt. Kode blokker som spenner over flere linjer er lettere å forstå enn en lang, vannrett instruksjonssett.,
formålet med spørsmålstegn-operatoren ?
er å returnere en verdi eller en annen, avhengig av sin tilstand. Vennligst bruk den for akkurat det. Bruk if
når du trenger å utføre ulike grener av koden.
Leave a Reply