2016-10-15 3 views
4

Вопрос для моих старейшин в Javascript: отложил в сторону факт, что let has a different variable scope than var does, мне кажется, что в подавляющем большинстве случаев нет причин использовать var над let. Конечно, если вы определяете переменную внутри оператора if, это не одно и то же, но есть ли еще одна причина, кроме возможности использовать один над другим?Есть ли причина не заменять `var`` let` в Javascript?

Редактировать: Чтобы было ясно, этот вопрос о лучшем pratice (то есть плюсы и минусы) в JavaScript, не о природе различий между var и let.

Спасибо!

+2

@jedi, нет, это один отличается –

+2

Повторяющиеся искатели overreactive как всегда: D –

+0

http://stackoverflow.com/questions/762011/let-keyword-vs-var-keyword-in-javascript – abhirathore2006

ответ

5

Нет, я думаю, что причин нет. Из того, что я прочитал, var оставлен для обратной совместимости. Большинство статей, которые я прочитал, советуют постепенно заменять все var событиями с let. Конечно, это должно быть сделано с учетом различий, таких как тот, который вы упомянули с блоком if. Я использую только let в своем коде ES6. Eric Elliott doesn't use var too. Нет ничего, используя var, что let не может сделать лучше. Если вам нужна целая область действия, создайте let в верхней части функции.

Существует одна разница, что я заметил, что при определении переменных в глобальной области видимости, переменные, определенные как var доступны с window.variable, а переменные с let не доступны с помощью window объекта. Но с надлежащим письменным модульным кодом, нет var заявление должно быть разрешено просачиваться до window, и поэтому это не имеет значения.

Я бы также советовал использовать const вместо let для случаев, когда переменная ссылка не будет мутирована.

Смежные вопросы