⊗jsPmCdScp 134 of 505 menu

Kintamųjų matomumo sritis if-else konstrukcijoje JavaScript

Tegu paprastumo dėlei mes turime visada įvykdomą sąlygą:

if (true) { }

Panagrinėkime tokį kodą:

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

Kaip matote, į kintamąjį res turėtų būti įrašyta reikšmė '!'. Tačiau, jei paleisite šį kodą, konsolėje bus išvesta klaida!

Esmė ta, kad kintamieji, deklaruoti viduje riestinių skliaustų, yra matomi tik viduje tų skliaustų ir nėra matomi išorėje. Moksliniu požiūriu čia kalbama apie kintamųjų matomumo sritį.

Galima sakyti, kad kintamųjų, deklaruotų riestinių skliaustų viduje, matomumo sritis yra tik tie riestiniai skliaustai. Tačiau, jei kintamasis deklaruotas išorėje riestinių skliaustų, tai jis matomas ir viduje jų, ir išorėje:

let res; // kintamasis deklaruotas išorėje if (true) { res = '!'; } console.log(res); // išves '!'

Šiame pavyzdyje į kintamąjį res priklausomai nuo sąlygos įrašoma arba reikšmė 1, arba reikšmė 2:

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

Tačiau, jei paleisite šį kodą, konsolėje bus išvesta klaida. Kaip jau dabar suprantate, visa problema yra kintamųjų matomume. Problemai išspręsti deklaruokime kintamąjį išorėje sąlygos:

let test = true; let res; // deklaruojame kintamąjį išorėje sąlygos if (test) { res = 1; } else { res = 2; } console.log(res); // išves 1

Žemiau pateikto kodo autorius norėjo atlikti amžiaus patikriną ar pasiekta 18 metų. Tačiau kodas neveikia. Ištaisykite kodo autoriau klaidą. Štai problematiškas kodas:

let age = 17; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti