Анастасия Махова

Всем привет! Почему в теории при объявлении функции abcValue используется let, а не const?

3 1

Сергей Соловьев

Здравствуйте, Анастасия. Там объявление переменной c присвоением имени и ее инициализация (присвоение значения и его типа данных) происходят в разных местах кода. С константой так не пройдет, поэтому использовано 'let' (допустимо также 'var'). Иначе возникнет синтаксическая ошибка "отсутствия инициализации константы". Подробности здесь: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Errors/Missing_initializer_in_const

1

Анастасия Махова

То есть я правильно понимаю, что если мне нужно объявить неизменяемую переменную, я использую 'const', если изменяемую в разных местах, то 'let', а если глобальную, то допустимо использование 'var'? Просто я проходила курс не от Хекслета по основам программирования и там использовали только 'var' и мне теперь не совсем понятно, допустимо ли использовать это вообще.

0

Сергей Соловьев

Немного перефразирую) В наши дни вы можете использовать всего два объявления: let и const, которые вошли в использование вместе со стандартом ES6 2015-го года. Каждое из них можно использовать в любой области видимости, хоть в глобальной, хоть в самой глубокой локальной. Let используется строго для переменных, для которых в коде существуют инструкции изменения значения. В противном случае - const. Линтер, кстати, всегда вам подскажет, где let стоит заменить на const.

Объявление var использовалось еще до ES6, с его помощью объявляли как изменяемые, так и не изменяемые переменные. Сейчас var в основном используется, когда ES6+ стандарты языка с помощью транспайлеров переводятся в стандарт ES5 для поддержки приложения не самыми передовыми версиями браузеров. И к слову, еще Google Apps Script использует ES5.

Между var и let/const есть существенное различие в контексте блочной области видимости, сейчас не загружайтесь этим, просто имейте это в виду, со временем разберетесь глубже..

1

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Похожие вопросы

Timofey 1 день назад →

Почему if нельзя напрямую присвоить константе? Структура if if (условие) { инструкция1; } else { инстр...

user-62032726c3751e1c 3 дня назад →

Этот код (https://ru.hexlet.io/code_reviews/299018?submission_id=378292) читается гораздо хуже чем этот код...

Иван 6 дней назад →

Здравствуйте. При прохождении теста, ошибка возникает в экспорте и импорте функции, не совсем понимаю эту о...

user-441132e340a6e75c 01 августа 2020 →

Здравствуйте) не могу понять, где допущены ошибки, код ведь рабочий https://ru.hexlet.io/code_reviews/296731

Александра Шутраева 31 июля 2020 →

здравствуйте, подскажите пжл где сделаны ошибки https://ru.hexlet.io/code_reviews/296449#