Большинство программистов говорят, что "let" следует использовать всегда, поэтому возникает вопрос: есть ли причина продолжать использовать var или это просто полностью "не рекомендуется"?
Я бы сказал наоборот. Как правило, используйте var, потому что он не нарушает совместимость. Если вы знаете, что делаете, используйте let.
Я бы добавил следующее: Как правило, используйте var или let, только если вы точно знаете, что делаете =)
Переменные позволять обычно используются, когда есть ограниченное использование этих переменных. Например, несинхронизированные данные могут быть изменены во время ожидания. Если вы используете позволять, это может заблокировать ваши данные. Это хорошо для тебя. Разница между let и var в Javascript
@lbu Я не согласен. Если вы по умолчанию используете вар, вы потратите половину своего времени на отладку кода, пытаясь понять, почему Икс = у, если вы не назначили Икс в текущей функции. Отладить ошибку (ошибка неназначенной переменной) проще, чем неожиданно «добавить» функционал.
@ Ибу Я тоже не согласен. Вы говорите себе: «Если вы знаете, что делаете, используйте позволять»: это означает, что вы можете продолжать использовать вар, когда не знаете, что делаете. У меня эта проблема каждый день с моими учениками. Использование вар открывает дверь к плохому кодированию, что приводит к нестабильному коду.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


позволять следует использовать, если переменная используется только в текущей области или не должна использоваться за пределами текущей области, например, если то же имя используется в другом месте, но не должно устанавливаться перед повторным использованием. Это полезно для массового присвоения переменных, чтобы сделать ваш код более читаемым и более легким для написания внутри области видимости.
Например, вы можете написать
for (let city of cities) {
console.info(city.name + city.state + city.areacode);
}
Но, возможно, вы захотите не писать город. каждый раз - потому что, хотя этот цикл for не делает сейчас слишком много, в будущем вы захотите гораздо больше в нем! Итак, в этом случае вы бы сделали:
for (let city of cities) {
let cname = city.name;
let cstate = city.state;
let carea = city.areacode;
console.info(cname + cstate + carea);
}
и это позволяет вам немного лучше отделить данные от логики ... не беспокоясь о том, что cname будет установлено в другом месте.
Что касается объема переменной:
people = ["Frank", "Tina"];
for (let p of people) {
console.info(p);
}
console.info(p);
Это вызовет ошибку неназначенной переменной, но после отображения первых двух имен.
вар чрезвычайно полезен, если вы хотите назначить область видимости переменной, которую может видеть все. Это полезно, например, для назначения URL-адреса для получения данных json, а затем изменения этого URL-адреса на лету ... Таким образом, все ваши другие функции всегда обращаются к одним и тем же данным, а не вызывают функцию для их получения каждый раз. Они полезны, если вы, возможно, захотите отслеживать элемент, объект и т.п. с помощью нескольких различных функций.
people = ["Frank", "Tina"];
for (var p of people) {
console.info(p);
}
console.info(p);
Это покажет оба имени, но дважды фамилию.
const аналогичен вар, но не может быть изменен после назначения.
Массовое присвоение переменных возможно с const и let ☺
Я никогда не говорил, что это не так.
Ваш пример с вар демонстрирует прямо противоположное: если вы хотите, чтобы п находился во внешней области, вы должны объявить ее во внешней области. Если вы этого не сделаете, вы подготовите себя или пользователей своего кода к предстоящим проблемам ... именно в том, в чем люди упрекают JavaScript. Решение - запретить использование вар (с новым кодом).
Вы можете проделать несколько забавных трюков с подъемом, но, как правило, никогда не используйте
var, если вы точно не знаете, для чего вы его используете.