Nogle gange er vi nødt til at udføre forskellige handlinger baseret på forskellige forhold.
for At gøre dette, kan vi bruge if
erklæring og den betingede operator ?
, der også hedder et “spørgsmålstegn” operatør.
“if” – erklæringen
if(...)
– erklæringen evaluerer en betingelse inden for parentes, og hvis resultatet ertrue
, udfører en blok kode.,
For eksempel:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
I eksemplet ovenfor, vil den betingelse, er en simpel ligestilling ind (year == 2015
), men det kan være meget mere kompleks.,
Hvis vi ønsker at udføre mere end én sætning, vi er nødt til at pakke vores kode blok inde i krøllede parenteser:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
Vi anbefaler, indpakning din kode blok med krøllede parenteser {}
hver gang du bruger en if
erklæring, selv hvis der kun er en erklæring om at udføre. Dermed forbedrer læsbarheden.
boolsk konvertering
if (…)
erklæring evaluerer udtrykket i dets parenteser og konverterer resultatet til en boolsk.,
Lad os huske konvertering regler fra kapitel Type Konverteringer:
- Et antal
0
, en tom streng""
null
undefined
ogNaN
allefalse
. På grund af det kaldes de “falske” værdier. - andre værdier bliver
true
, så de kaldes “sandfærdige”.,
Så, koden under denne betingelse ville aldrig kør:
if (0) { // 0 is falsy ...}
…og inde i denne tilstand – det vil altid:
if (1) { // 1 is truthy ...}
Vi kan også videregive en pre-evalueret boolesk værdi til if
, som denne:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
Den “anden” – klausul
if
redegørelsen kan indeholde en valgfri “anden” blok. Den udfører, når betingelsen er falsk.,
For eksempel:
flere betingelser: “ellers hvis”
Nogle gange vil vi gerne teste flere varianter af en tilstand. else if
klausul lader os gøre det.
For eksempel:
i koden ovenfor kontrollerer JavaScript først year < 2015
. Hvis det er falsk, går det til næste betingelse year > 2015
. Hvis det også er falsk, viser det det sidste alert
.
der kan være mere else if
blokke. Den endelige else
er valgfri.
betinget operatør?,’
Nogle gange skal vi tildele en variabel afhængigt af en tilstand.
For eksempel:
den såkaldte “betingede” eller “spørgsmålstegn” operatør lader os gøre det på en kortere og enklere måde.
operatøren er repræsenteret af et spørgsmålstegn?
. Nogle gange hedder det “ternært”, fordi operatøren har tre operander. Det er faktisk den eneste operatør i JavaScript, der har så mange.,
syntaks er:
let result = condition ? value1 : value2;
condition
evalueres: hvis det er truthy derefter value1
er tilbage, ellers – value2
.
For eksempel:
let accessAllowed = (age > 18) ? true : false;
Teknisk set kan vi udelade parenteserne omkring age > 18
. Spørgsmålstegnoperatøren har en lav prioritet, så den udføres efter sammenligningen >
.,
dette eksempel vil gøre det samme som det foregående:
men parenteser gør koden mere læsbar, så vi anbefaler at bruge dem.
I eksemplet ovenfor, kan du undgå at bruge spørgsmålstegn aktør, fordi den sammenligning, selv returnerer true/false
:
// the samelet accessAllowed = age > 18;
Flere ‘?’
En sekvens af spørgsmålstegn operatører ?
kan returnere en værdi, der afhænger af mere end én betingelse.,
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 svært i starten at forstå, hvad der foregår. Men efter et nærmere kig, kan vi se, at det bare er en almindelig sekvens af prøver:
Her er hvordan det ser ud ved hjælp af 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-traditionelle brug af ‘?,’
nogle gange spørgsmålstegn ?
bruges som en erstatning for if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
Afhængigt af den tilstand company == 'Netscape'
enten det første eller det andet udtryk efter ?
bliver udført, og viser en advarsel.
vi tildeler ikke et resultat til en variabel her. I stedet udfører vi anden kode afhængigt af tilstanden.
det anbefales ikke at bruge spørgsmålstegnoperatøren på denne måde.,
notationen er kortere end den tilsvarendeif
erklæring, som appellerer til nogle programmerere. Men det er mindre læsbart.
Her er den samme kode ved hjælp af if
til sammenligning:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
Vores øjne scanne koden lodret. Kodeblokke, der spænder over flere linjer, er lettere at forstå end et langt, vandret instruktionssæt.,
formålet med spørgsmålstegnoperatøren ?
er at returnere en eller anden værdi afhængigt af dens tilstand. Brug det til netop det. Brug if
når du skal udføre forskellige grene af kode.
Leave a Reply