Пусть для простоты у нас есть всегда выполняющееся условие:
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);