Переменные. const, let, var
JavaScript простым языком
Last updated
Was this helpful?
JavaScript простым языком
Last updated
Was this helpful?
Итак, приступим к разбору операторов
, которые дают жизнь переменным
.
Как я и говорил в предыдущем уроке, у нас имеются целых 3 оператора для данного действа. Разберем каждый по порядку.
Еще мой дед определял переменные с помощью данного оператора, а узнал он это от своего деда и так далее. Короче, все это в прошлом. Это чаще всего можно найти только в проектах с legacy-кодом
, т.е., в проектах, которые были давно написаны и их ни разу не рефакторили
(не обновляли код под новые стандарты
). Но, рассказать об этом все равно стоило, так как это основа.
Оператор var
определяет переменную в текущей области видимости.
Область видимости переменной
- это функция, внутри которой она объявлена. Но, если переменную объявили не внутри функции, то ее область видимости - глобальный объект window
, а это, на секундочку, весь документ.
Переменные объявленные данным оператором, также умеют всплывать, т.е. переменную можно вызвать еще до её определения и это не вызовет никаких ошибок. Пример:
Результатом выполнения такого кода будет вывод в консоль undefined,
а так происходит только в том случае, когда переменная уже определена, но у нее нет никакого значения.
Этот оператор очень похож на оператор var.
Главное их различие - область видимости (но об этом мы говорим позже).
Если попробовать повторить тот же самый код:
Как видишь, на этом моменте возникнет ошибка, в которой JavaScript говорит тебе, что ты косорукий и пытаешься использовать топор, когда его еще и не придумали.
Оператор let
работает более предсказуемо, с ним проще, он твой дружище. Не используй var - используй let.
Оператор очень обидчивый, и по всякой чепухе его лучше не дергать. Переменная объявленная с помощью данного оператора - это коробка, в которую ОБЯЗАТЕЛЬНО нужно что-то положить, а если уж положил, то не трогать!
На содержимое такой переменной можно только смотреть, любоваться. И даже не вздумай менять содержимое такой переменной. У тебя не получится. От слова «совсем».
У тебя лишь получится словить ошибку вида: "Uncaught TypeError: Assignment to constant variable"
.
Коротко и без аналогий: переменная объявленная таким оператором обязательно должна иметь значение и его нельзя менять.
Если ты понял, что ты ничего не понял, то не переживай. Это не ты тупой, и даже не я. Со всеми этими областями видимости, которые ты сейчас вообще не понимаешь мы столкнемся еще ни раз в следующих уроках.
Я сторонник того, чтобы понимание приходило во время практики. Поэтому максимально усвой то, что написано выше, а все что не понятно — поймешь со временем.