Переменные. const, let, var

JavaScript простым языком

Итак, приступим к разбору операторов, которые дают жизнь переменным.

Как я и говорил в предыдущем уроке, у нас имеются целых 3 оператора для данного действа. Разберем каждый по порядку.

var

var a = 1;

Еще мой дед определял переменные с помощью данного оператора, а узнал он это от своего деда и так далее. Короче, все это в прошлом. Это чаще всего можно найти только в проектах с legacy-кодом, т.е., в проектах, которые были давно написаны и их ни разу не рефакторили (не обновляли код под новые стандарты). Но, рассказать об этом все равно стоило, так как это основа.

Оператор var определяет переменную в текущей области видимости.

Область видимости переменной - это функция, внутри которой она объявлена. Но, если переменную объявили не внутри функции, то ее область видимости - глобальный объект window, а это, на секундочку, весь документ.

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

console.log(a); //выведет: undefined
var a = 1;

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

let

Этот оператор очень похож на оператор var. Главное их различие - область видимости (но об этом мы говорим позже).

Если попробовать повторить тот же самый код:

console.log(a); //выведет: ReferenceError: a is not defined
let a = 1;

Как видишь, на этом моменте возникнет ошибка, в которой JavaScript говорит тебе, что ты косорукий и пытаешься использовать топор, когда его еще и не придумали.

Оператор let работает более предсказуемо, с ним проще, он твой дружище. Не используй var - используй let.

const

const a = 1;

Оператор очень обидчивый, и по всякой чепухе его лучше не дергать. Переменная объявленная с помощью данного оператора - это коробка, в которую ОБЯЗАТЕЛЬНО нужно что-то положить, а если уж положил, то не трогать!

На содержимое такой переменной можно только смотреть, любоваться. И даже не вздумай менять содержимое такой переменной. У тебя не получится. От слова «совсем».

У тебя лишь получится словить ошибку вида: "Uncaught TypeError: Assignment to constant variable".

Коротко и без аналогий: переменная объявленная таким оператором обязательно должна иметь значение и его нельзя менять.

Если ты понял, что ты ничего не понял, то не переживай. Это не ты тупой, и даже не я. Со всеми этими областями видимости, которые ты сейчас вообще не понимаешь мы столкнемся еще ни раз в следующих уроках.

Я сторонник того, чтобы понимание приходило во время практики. Поэтому максимально усвой то, что написано выше, а все что не понятно — поймешь со временем.

Last updated