⊗jsPmCdScpN 135 of 505 menu

Nyanser av variablers omfattning i if-else-konstruktioner i JavaScript

Variablers omfattning har en viss nyans. Låt oss undersöka den med ett exempel. Låt oss deklarera variabeln res utanför vårt villkor med ett värde, och inuti villkoret ändra detta värde till ett annat:

let res = 1; if (true) { res = 2; } console.log(res); // skriver ut 2

Som du ser ändrades variabeln res inuti villkoret. Allt förändras dock om man även deklarerar variabeln res inuti villkoret via let:

let res = 1; if (true) { let res = 2; // deklarera variabeln via let } console.log(res); // skriver ut 1, inte 2!

Här handlar allt om att deklarationen av variabeln via let inuti villkoret skapade en lokal variabel res.

Det vill säga, inuti villkoret finns en variabel res, och utanför villkoret - en annan. Man kan övertyga sig om detta genom att skriva ut variabelns värde i konsollen inuti villkoret:

let res = 1; if (true) { let res = 2; console.log(res); // skriver ut 2 } console.log(res); // skriver ut 1

Författaren till koden nedan ville utföra en kontroll av ålder för att uppnå 18 år. Koden skriver dock ut värdet undefined i konsollen oavsett åldervärde. Rätta författarens kodfel. Här är den problematiska koden:

let age = 17; let adult; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);

Författaren till koden nedan ville utföra en kontroll av ålder för att uppnå 18 år. Efter att ha kontrollerat koden visade det sig att om åldern är lika med eller större än 18 år, så skrivs true in i variabeln adult, som det ska vara, men om åldern är mindre än 18, har variabeln adult värdet undefined. Rätta författarens kodfel.

Här är den problematiska koden:

let age = 17; let adult; if (age >= 18) { adult = true; } else { let adult = false; } console.log(adult);

Författaren till koden nedan ville utföra en ålderskontroll. Koden skriver dock ut värdet undefined i konsollen oavsett åldervärde. Rätta författarens kodfel.

Här är den problematiska koden:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'från 18 till 23'; } else { let res = 'mer än 23'; } } else { let res = 'mindre än 18'; } console.log(res);

Författaren till koden nedan ville utföra en ålderskontroll. Koden skriver dock ut värdet undefined i konsollen när åldervärdet är större än 18 år. Rätta författarens kodfel.

Här är den problematiska koden:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'från 18 till 23'; } else { res = 'mer än 23'; } } else { res = 'mindre än 18'; } console.log(res);
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa