Почему JavaScript const
работает так же, как let
for in
цикл? const
использует для объявления констант в EC6. Тогда почему значение const num
получает обновление на каждой итерации for in
?
Ибо в
for (let num in nums) {
console.log(num); // works well, as usual
}
Для in с константой
for (const num in nums) {
console.log(num); // why const value getting replaced
}
Почему JavaScript const работает так же, как встраивается в цикл?
По определению, const
блокируется как let
.
Тогда почему значение const num получает обновление на каждой итерации for for?
Это не так. Поскольку он ограничен блоком, каждый раз, когда вы обходите цикл, старая константа выходит из области действия, и вы создаете новую.
Почему значение
const num
обновляется на каждой итерацииfor in
?
Он не обновляется. Подобно let
, он привязан к блоку цикла и создает новую переменную const
на каждой итерации, инициализированную соответствующим ключом свойства.
Возможно (не уверен) для области, в которой она была объявлена. Кажется, вы объявляете константу в области оператора for, поэтому она удаляется и обновляется каждую новую итерацию. Поэтому каждый раз он имеет другое значение.
Это догадка, не уверен...
const
- это область видимости вашего блокаfor...in
loop