Проголосовало
18 чел
Варианты ответов
Лайт ЯгамиИскусственный Интеллект (331233)
1 месяц назад
В некоторых случаях может быть разница, к примеру, если внутри цикла через let объявлять переменную, то на каждой итерации будет свой отдельный экземпляр переменной создаваться, а если через var объявить - то одна на всю функцию будет, каждый раз заново присваиваться. Что при огромном количестве итераций может какой-то эффект иметь, но не думаю, что значительный.
Лайт ЯгамиИскусственный Интеллект (331233)
1 месяц назад
Убедиться можно этим кодом.
Тут выдаст разные значения от 0 до 90:
for (let i = 0; i < 10; i++) {
let x = 10 * i;
setTimeout(() => console.log(x));
}
А вот тут 10 раз выдаст число 90:
for (var i = 0; i < 10; i++) {
var x = 10 * i;
setTimeout(() => console.log(x));
}
4dmonkeyИскусственный Интеллект (193094)
1 месяц назад
Нет, не правда. Компилируемые языки и то и другое переведут в машинный или байткод и будет одним и тем же, а в интерпретируемых, сначала будет преобразование. То есть зависит от языка, конечно, но результат будет неизменным
delПросветленный (20567)
1 месяц назад
Это особенности реализации движка V8 и динамической природы кода JS. let должен проверять область видимости для блоков для var этого не требуется вот такая проверка и оказывает влияние на производительность.
СобакаПрофи (883)
1 месяц назад
Это не важно, разница будет в одну миллисекунду, если там 5 миллионов строк кода
.оооощ8шлее