@HelloWhatsupp

Почему переменная, объявленная внутри цикла, не считается за ошибку?

Если объявить какую-либо переменную, а после нее объявить другую переменную с тем же именем, то будет ошибка (Identifier 'max' has already been declared)
let max;
let max;

Но если объявить переменную внутри цикла, то никакой ошибки не возникнет.
for (let i = 0; i < 10; i++) {
  let max;
  console.log(i);
}

Почему? Цикл же повторяет последовательность действий, заданных в блоке кода, а значит и заново объявляет переменную, но ошибки не возникает.
О вопросе
Да, возможно вопрос глупый, но ответа в интернете я на него не нашел, поэтому прошу просто ответить на него. Спасибо
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
let и const действуют до ближайших скобок, новые скобки — новый контекст
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexSku
не буду отвечать из-за модератора
Вы бы написали, что за язык, но есть правила: фигурные скобки задают блок, а внутри блока новый уровень вложенности и локальных переменных, т.е. локальная переменная не связана с такой же по имени внешней.
Можете попробовать так:
let max;
{let max;}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы