Главная > JavaScript > Javascript: разница между var и let

Javascript: разница между var и let

06.01.2019 3 комментария » Просмотры: 14 513

Javascript

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

Синтаксис обоих объявлений похож

Отличие 1: let в отличии от var, не добавляется к глобальному объекту window,  при объявлении в глобальной области видимости.

Отличие 2: видимость переменной объявленной через let, ограничивается блоком объявления

Именно по этой причине, let рекомендуется использовать везде, где нет необходимости обращений к глобальным и родительским объектам. Вот еще один пример, который наглядно демонстрирует это свойство

Отличие 3: переменные объявленные через let нельзя объявить повторно.

Пример с var

Пример с let

Пожалуй, стоит заметить, что это относится именно к объявлению переменных, обычное присваивание будет работать одинаково.

Отличие 4: let позволяет избавиться от классической проблемы замыканий

Пример с var. В замыкании сохраняется ссылка на i, а не его значение

Пример с let. В замыкании сохраняется значение i, а не ссылка на него

Выводы

Вот собственно и все отличия между объявлениями переменных через var и let. В остальных случаях они работают одинаково.

Когда использовать let, а когда var?

Пожалуй еще один вопрос, на который стоит ответить, это как определиться коогда использовать var, а когда let. Я отвечу так: всегда используйте let и забудьте про var!

Автор: | Рейтинг: 5/5 | Теги: ,

3 комментария

Написать свой
  1. Алексей Ответить
    21.12.2020 в 4:02 дп
    " пенсионеры веб-разработки " - подее это самое) Спасибо за статью)
  2. Влад Ответить
    01.10.2020 в 9:44 пп
    Скажу так...я как новичёк в яве нихрена не понял
  3. анна Ответить
    18.06.2020 в 1:04 пп
    Отлично!

Добавить комментарий для Влад Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>