⊗jsPmCdScp 134 of 505 menu

Област на видимост на променливите в if-else в JavaScript

Нека за простота имаме условие, което винаги се изпълнява:

if (true) { }

Нека разгледаме следния код:

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

Както виждате, в променливата res трябва да се запише стойност '!'. Въпреки това, ако стартирате този код, в конзолата ще се изведе грешка!

Факт е, че променливите, декларирани във фигурните скоби, са видими само вътре в тези скоби и не са видими отвън. Научно казано тук става дума за област на видимост на променливите.

Може да се каже, че областта на видимост на променливите, декларирани във фигурни скоби, са само тези фигурни скоби. Въпреки това, ако променливата е декларирана извън фигурните скоби, то тя е видима както вътре в тях, така и отвън:

let res; // променливата е декларирана отвън if (true) { res = '!'; } console.log(res); // ще изведе '!'

В следващия пример в променливата res в зависимост от условието се записва или стойност 1, или стойност 2:

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

Въпреки това, ако стартирате този код, в конзолата ще се изведе грешка. Както вече разбирате, всичко е въпрос на видимост на променливите. За решаване на проблема нека декларираме променливата извън условието:

let test = true; let res; // декларираме променливата извън условието if (test) { res = 1; } else { res = 2; } console.log(res); // ще изведе 1

Авторът на дадения по-долу код искаше да извърши проверка на възрастта за навършване на 18 години. Кодът обаче не работи. Поправете грешката на автора на кода. Ето проблемния код:

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