Отличие let от var: Переменная, объявленная через var, видна везде в функции. Переменная, объявленная через let, видна только в рамках блока {...}, в котором объявлена.
А вот в уроке "Окружение", к сожалению, вы это не упомянули. И у новичков может сложиться мнение, что область видимости переменных в javascript на уровне блоков кода, хотя это справедливо только в случае использования let. Это очень сильно сбивает, особенно тех, кто захочет почитать об области видимости переменных JavaScript на других ресурсах - и натолкнется на противоречие с вашим уроком (ведь в других местах примеры приводятся с использованием var, а у вас let).
Поправьте меня если я где-то не прав.
Но несмотря на отдельные замечания, в целом по вашим курсам хочу сказать: возможно в Рунете аналогов нет, продолжайте в том же духе.
Нужно не забывать что этот курс по основам программирования, а не js, поэтому специфика нужная js разработчикам в нем не дается и не нужна, она только отвлекает от сути вещей.
p.s. С введением let
, var
полностью потерял актуальность и может рассматриваться только как legacy элемент.
p.s.s. мы в принципе будем давать только es6.
спасибо за ответ! только мне как новичку теперь интересно, что такое legacy элемент. Если не сложно, напишите в двух словах что это такое.
legacy - это что-то устаревшее. Любой язык программирования развивается и у него появляется legacy, причем чем меньше проектировали язык в самом начале (js относится к таковым), тем больше legacy рождается в языке в процессе развития. Если бы javascript делали более вдумчиво, то var
бы вообще не появился, и теперь его не надо использовать, но из языка его никогда не уберут, потому что иначе сломается обратная совместимость и такой язык никому не будет нужен.
как я понял, из языка его не уберут, потому, что, старые коды написанные с использованием вар не будут работать? кстати в поисковике по запросу "чем отличается let от var" этот топик 1))
Похожие вопросы
Подскажите, а возможен экспорт локальных переменных в другие модули? Например: const func = (a, b) => { ...
Владислав Кузнецов 15 октября 2019 →
подскажите, что делаю не так. https://ru.hexlet.io/code_reviews/158386
Дмитрий Капустин 03 октября 2019 →
Помогите найти ошибку пожалуйста. Все срабатывает кроме greaterThan. https://ru.hexlet.io/code_reviews/154139
bitchplease 13 сентября 2019 →
А почему перед началом теста нет объяснения конструкции const f = (x) => () => () => x; ?? Как ее понимать?
Правильно ли будет рассматривать замыкание в разрезе областей видимости? Просто мыслить в терминах области ...