Почему `var` все еще используется в современных кодовых базах JavaScript, несмотря на наличие` Let` и `const`?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему `var` все еще используется в современных кодовых базах JavaScript, несмотря на наличие` Let` и `const`?

Сообщение Anonymous »

Я изучал современный JavaScript, и я понимаю, что let и const теперь являются предпочтительными способами объявления переменных из-за их сфера блоков и более предсказуемого поведения по сравнению с VAR .
Однако, пока читая различные проекты с открытым кодом и даже некоторые уроки, я все еще часто сталкиваюсь с использованием 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 и ожидал никакой разницы. Но оказывается, что в некоторых случаях, особенно внутри петли или, если блоки, поведение «переменных изменяется из -за различий в сферах». Я хочу понять, почему, прежде чем я сделаю серьезный рефактор или не включил правило в Eslint .

Подробнее здесь: https://stackoverflow.com/questions/796 ... ailability
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»