Област на видливост на променливите во 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);