⊗jsPmCdScpN 135 of 505 menu

Niuanse zakresu zmiennych w konstrukcjach if-else w JavaScript

Zakres zmiennych ma pewien niuans. Przyjrzyjmy się mu na przykładzie. Zadeklarujmy na zewnątrz naszego warunku zmienną res z jedną wartością, a wewnątrz warunku zmieńmy tę wartość na inną:

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

Jak widać, zmienna res zmieniła się wewnątrz warunku. Wszystko jednak się zmieni, jeśli wewnątrz warunku również zadeklarujemy zmienną res przez let:

let res = 1; if (true) { let res = 2; // zadeklarujmy zmienną przez let } console.log(res); // wypisze 1, a nie 2!

Tutaj chodzi o to, że deklaracja zmiennej przez let wewnątrz warunku stworzyła lokalną zmienną res.

Czyli wewnątrz warunku istnieje jedna zmienna res, a na zewnątrz warunku - inna. Można się o tym przekonać, wypisując wartość zmiennej do konsoli wewnątrz warunku:

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

Autor poniższego kodu chciał wykonać sprawdzenie wieku na osiągnięcie 18 lat. Kod jednak przy dowolnej wartości wieku wypisuje do konsoli wartość undefined. Popraw błąd autora kodu. Oto problematyczny kod:

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

Autor poniższego kodu chciał wykonać sprawdzenie wieku na osiągnięcie 18 lat. Po sprawdzeniu kodu okazało się, że jeśli wiek jest równy lub większy niż 18 lat, to do zmiennej adult zostaje zapisane true, jak powinno być, jednakże jeśli wiek jest mniejszy niż 18, to zmienna adult ma wartość undefined. Popraw błąd autora kodu.

Oto problematyczny kod:

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

Autor poniższego kodu chciał wykonać sprawdzenie wieku. Kod jednak przy dowolnej wartości wieku wypisuje do konsoli wartość undefined. Popraw błąd autora kodu.

Oto problematyczny kod:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'od 18 do 23'; } else { let res = 'więcej niż 23'; } } else { let res = 'mniej niż 18'; } console.log(res);

Autor poniższego kodu chciał wykonać sprawdzenie wieku. Kod jednak przy wartości wieku większej niż 18 lat wypisuje do konsoli wartość undefined. Popraw błąd autora kodu.

Oto problematyczny kod:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'od 18 do 23'; } else { res = 'więcej niż 23'; } } else { res = 'mniej niż 18'; } console.log(res);
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć