Я подумал, что было бы лучше использовать объявление let для temp, потому что таким образом переменная будет объявлена только один раз.
Существует новая версия, объявленная для каждой итерации цикла, либопуть;это важно для решения проблемы замыканий в циклах:
const array = [1, 2, 3, 4];
for (const entry of array) {
setTimeout(() => {
console.log(entry);
}, 0);
}
Если бы не создавалась новая переменная для каждой итерации цикла, она бы записывала одно и то же значение (вероятно, 4) четыре раза.
Выбор let
или const
уменьшен до:
Хотите ли вы иметь возможность присвоить ему новое значение в цикле?
Ваш личный стиль (или предпочтения вашей команды).
Мне интересно, обрабатывает ли среда выполнения Javascript две версии одинаково под капотом.
Да, кроме этого вы можете присвоить переменной let
новое значение в цикле, если хотите. Instance Например:
const strings = ["a", "b", "c"];
for (let str of strings) {
str = str.toUpperCase();
console.log(str);
}
Например, единственная разница в том, является ли переменная изменчивой или нет.
¹ Во избежание сомнений: все, чтоприсвоение ему - это изменение значения этой переменной.Это не влияет на массив / итерируемый, из которого получено значение.