@Breeze1

Объявление переменной внутри цикла?

Объясните пожалуйста, для чего переменную summary нужно объявлять перед началом цикла, к тому же недостаточно просто её объявить, нужно для начала присвоить ей значение 0, иначе цикл вернёт NaN. Я так полагаю, это происходит потому что при обычном объявлении, переменная == undefined.
Но все же первый вопрос мне не понятен, почему нельзя объявить переменную внутри цикла, и присваивать ей значения массива

let ask1 = +prompt('Введите значение №1', '');
let ask2 = +prompt('Введите значение №2', '');
let ask3 = +prompt('Введите значение №3', '');
let ask4 = +prompt('Введите значение №4', '');

let arr = [ask1, ask2, ask3, ask4]; 

let summary = 0;

for(let i = 0; i < arr.length; i++) {
    summary += arr[i];
}


console.log(summary);
  • Вопрос задан
  • 1439 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
Но все же первый вопрос мне не понятен, почему нельзя объявить переменную внутри цикла, и присваивать ей значения массива

Ну почему нельзя
for(let i = 0; i < 10; i++) {
  var summary = summary || 0;
  summary += i;
}
console.log(summary);


Область видимости var - текущая функция. var можно объявлять сколько угодно, он все равно поднимается вверх функции и срабатывает только один раз, см. var hoisting
Область видимости let - текущий блок. Если делать let внутри цикла, то будет новая summary на каждую итерацию цикла, т.к. на каждую итерацию считай создается отдельный блок.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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