Однако, пока читая различные проекты с открытым кодом и даже некоторые уроки, я все еще часто сталкиваюсь с использованием var , даже в ES6. Это поднимает несколько вопросов: < /p>
1. Почему var по -прежнему используется в современном коде, даже если let и const доступны?
это просто устаревший код, или существуют преднамеренные варианты использования, когда var все еще предпочтительнее?
2. Есть ли какие -либо соображения производительности при использовании var vs let/const ?
Например:
[*] Двигатели JS, такие как V8, оптимизируют var лучше из -за его возраста? и т. д .?
Код: Выделить всё
function legacyExample() {
var x = 10;
if (true) {
var x = 20;
console.log(x); // 20
}
console.log(x); // 20 again - not block scoped
}
function modernExample() {
let y = 10;
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // 10
}
Я не ищу просто «Не используйте var ». Instead, I want to understand:
Any valid engineering trade-offs for using var
[*]Real-world situations where var still makes sense
[*]Migration strategies or gotchas when replacing var with let or const
< /ul>
Я прочитал и попробовал несколько примеров кода JavaScript, особенно в различных современных репозиториях с открытым исходным кодом. Я попытался заменить var на let или const и ожидал никакой разницы. Но оказывается, что в некоторых случаях, особенно внутри петли или, если блоки, поведение «переменных изменяется из -за различий в сферах». Я хочу понять, почему, прежде чем я сделаю серьезный рефактор или не включил
Код: Выделить всё
var
Подробнее здесь: https://stackoverflow.com/questions/796 ... ailability