Почему при использовании const в цикле for в глобальной области видимости возникает ошибка TypeError, но внутри функции это работает? - PullRequest
0 голосов
/ 10 января 2019
var tests = [1, 4, 3];
for(const test of tests){
  test += 1;
  console.log(test);
}

- получаем ошибку типа b / c const

function average(...nums){
  let sum = 0;
  let counter = 0;
  for(const num of nums){
    sum += num;
    counter++;
  }
  return sum / counter;
}

console.log(average(5, 5));

- почему бы нам не получить ошибку типа, поскольку мы снова использовали const

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я думаю, вы немного запутались в том, какая переменная изменяется. Первым вы меняете значение const test, но во втором примере вы меняете значение let sum

sum += num; совпадает с sum = sum + num число не изменилось

test += 1; совпадает с test = test + 1

0 голосов
/ 10 января 2019

Потому что вы переназначаете константу в первом, а не во втором. Вы мутируете test с test += 1, что недопустимо, тогда как вы никогда не мутируете num. Если вы попробуете num += 1 во втором, у вас будет та же проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...