Top.Mail.Ru
Ответы

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


.оооощ8шлее

Анонимный опрос
Да
Нет
Всего голосов: 18
По дате
По рейтингу
Аватар пользователя
Профи
4мес

Это не важно, разница будет в одну миллисекунду, если там 5 миллионов строк кода

Аватар пользователя
Просветленный
5мес

Это особенности реализации движка V8 и динамической природы кода JS. let должен проверять область видимости для блоков для var этого не требуется вот такая проверка и оказывает влияние на производительность.

Аватар пользователя
Искусственный Интеллект
5мес

Нет, не правда. Компилируемые языки и то и другое переведут в машинный или байткод и будет одним и тем же, а в интерпретируемых, сначала будет преобразование. То есть зависит от языка, конечно, но результат будет неизменным

Аватар пользователя
Искусственный Интеллект
5мес

Убедиться можно этим кодом.
Тут выдаст разные значения от 0 до 90:

1234
 for (let i = 0; i < 10; i++) { 
    let x = 10 * i; 
    setTimeout(() => console.log(x)); 
} 

А вот тут 10 раз выдаст число 90:

1234
 for (var i = 0; i < 10; i++) {  
    var x = 10 * i;  
    setTimeout(() => console.log(x));  
} 
Аватар пользователя
Искусственный Интеллект
5мес

В некоторых случаях может быть разница, к примеру, если внутри цикла через let объявлять переменную, то на каждой итерации будет свой отдельный экземпляр переменной создаваться, а если через var объявить - то одна на всю функцию будет, каждый раз заново присваиваться. Что при огромном количестве итераций может какой-то эффект иметь, но не думаю, что значительный.