⊗jsPmCdScpN 135 of 505 menu

Kintamųjų matomumo srities niuansai if-else konstrukcijose JavaScript

Kintamųjų matomumo sritis turi tam tikrų niuansų. Pažvelkime į jį pavyzdžiu. Paskirkime mūsų sąlygos išorėje kintamąjį res su viena reikšme, o sąlygos viduje pakeiskime šią reikšmę į kitą:

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

Kaip matote, kintamasis res pasikeitė sąlygos viduje. Vis dėlto, viskas pasikeis, jei sąlygos viduje taip pat paskelbsime kintamąjį res per let:

let res = 1; if (true) { let res = 2; // paskelbsime kintamąjį per let } console.log(res); // išves 1, o ne 2!

Čia visa esmė ta, kad kintamojo deklaravimas per let sąlygos viduje sukūrė lokalų kintamąjį res.

Tai yra, sąlygos viduje egzistuoja vienas kintamasis res, o sąlygos išorėje - kitas. Į tai įsitikinti galima, išvedus kintamojo reikšmę į konsolę sąlygos viduje:

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

Žemiau pateikto kodo autorius norėjo atlikti amžiaus patikrinimą ar pasiekta 18 metų. Vis dėlto, kodas, esant bet kuriai amžiaus reikšmei, į konsolę išveda reikšmę undefined. Ištaisykite kodo autoriaus klaidą. Štai problematiškas kodas:

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

Žemiau pateikto kodo autorius norėjo atlikti amžiaus patikrinimą ar pasiekta 18 metų. Patikrinus kodą paaiškėjo, kad jei amžius lygus arba didesnis nei 18 metų, tai į kintamąjį adult įrašoma true, kaip ir turi būti, tačiau, jei amžius mažesnis nei 18, tai kintamasis adult turi reikšmę undefined. Ištaisykite kodo autoriaus klaidą.

Štai problematiškas kodas:

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

Žemiau pateikto kodo autorius norėjo atlikti amžiaus patikrinimą. Vis dėlto, kodas, esant bet kuriai amžiaus reikšmei, į konsolę išveda reikšmę undefined. Ištaisykite kodo autoriaus klaidą.

Štai problematiškas kodas:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'nuo 18 iki 23'; } else { let res = 'daugiau nei 23'; } } else { let res = 'mažiau nei 18'; } console.log(res);

Žemiau pateikto kodo autorius norėjo atlikti amžiaus patikrinimą. Vis dėlto, kodas, esant amžiaus reikšmei didesnei nei 18 metų, į konsolę išveda reikšmę undefined. Ištaisykite kodo autoriaus klaidą.

Štai problematiškas kodas:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'nuo 18 iki 23'; } else { res = 'daugiau nei 23'; } } else { res = 'mažiau nei 18'; } console.log(res);
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