⊗jsPmCdScp 134 of 505 menu

Zakres zmiennych w if-else w JavaScript

Dla uproszczenia załóżmy, że mamy zawsze spełniony warunek:

if (true) { }

Przyjrzyjmy się następującemu kodowi:

if (true) { let res = '!'; } console.log(res);

Jak widzisz, do zmiennej res powinna zostać zapisana wartość '!'. Jednakże, jeśli uruchomimy ten kod, w konsoli pojawi się błąd!

Chodzi o to, że zmienne zadeklarowane wewnątrz nawiasów klamrowych są widoczne tylko wewnątrz tych nawiasów i nie są widoczne na zewnątrz. Mówiąc naukowo, chodzi tutaj o zakres widoczności zmiennych.

Można powiedzieć, że zakresem widoczności zmiennych zadeklarowanych wewnątrz nawiasów klamrowych są tylko te nawiasy klamrowe. Jednakże, jeśli zmienna jest zadeklarowana na zewnątrz nawiasów klamrowych, to jest widoczna zarówno wewnątrz nich, jak i na zewnątrz:

let res; // zmienna zadeklarowana na zewnątrz if (true) { res = '!'; } console.log(res); // wypisze '!'

W następnym przykładzie do zmiennej res w zależności od warunku zapisywana jest albo wartość 1, albo wartość 2:

let num = 5; if (num >= 0) { let res = 1; } else { let res = 2; } console.log(res);

Jednakże, jeśli uruchomimy ten kod, to w konsoli pojawi się błąd. Jak już teraz rozumiesz, winny jest zakres widoczności zmiennych. Aby rozwiązać problem, zadeklarujmy zmienną na zewnątrz warunku:

let test = true; let res; // deklarujemy zmienną na zewnątrz warunku if (test) { res = 1; } else { res = 2; } console.log(res); // wypisze 1

Autor poniższego kodu chciał wykonać sprawdzenie wieku na osiągnięcie 18 lat. Kod jednak nie działa. Popraw błąd autora kodu. Oto problematyczny kod:

let age = 17; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);
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ć