Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Правда ли, что var быстрее, чем let?

✧—Aquamarine—✧ Мыслитель (8206), закрыт 1 неделю назад

.оооощ8шлее
Проголосовало 18 чел
Варианты ответов
6
12
Комментарии
Иван ПосоховМастер (1953) 1 месяц назад
Lit energy никто не обгонит. Ай хороша была €б@ть
✧—Aquamarine—✧ Мыслитель (8206) Иван Посохов, ахаха, поржал. А теперь к менее важному
Aac AacoBОракул (53299) 1 месяц назад
если мозгов не хватает проверить, какая те тогда нафуй разница?!
Лайт ЯгамиИскусственный Интеллект (331233) 1 месяц назад
В некоторых случаях может быть разница, к примеру, если внутри цикла через let объявлять переменную, то на каждой итерации будет свой отдельный экземпляр переменной создаваться, а если через var объявить - то одна на всю функцию будет, каждый раз заново присваиваться. Что при огромном количестве итераций может какой-то эффект иметь, но не думаю, что значительный.
Aac AacoB Оракул (53299) Лайт Ягами, еще раз, для дебилов: тупым нет разницы!
Лайт ЯгамиИскусственный Интеллект (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 миллионов строк кода