JavaScript для тупых
  • JavaScript для тупых
  • Главная
  • Об учебнике
  • Формат обучения
  • Ввод в JavaScript. Что это? И для чего нужен?
  • Братки JavaScript-а
  • Переменные в JavaScript
  • Переменные. const, let, var
  • Преобразование типов
  • Операторы сравнения
  • Типы данных. Number
  • Типы данных. String
  • Типы данных. Boolean
  • Типы данных. null и undefined
  • Типы данных. Оператор typeof
  • Условные операторы: if и ?
  • Циклы: while, for
  • Операторы
  • Логические операторы
  • Знакомство с switch
  • Функции
  • Функции. Возврат значения
  • Стрелочные функции
  • Знакомство с DOM
  • DOM-элементы. Получение объектов
  • DOM-элементы. События. Ввод.
  • DOM-элементы. События. Часть 2
  • Объекты. Начало игры
  • Массивы
  • Методы массивов: splice, slice, concat
  • Методы массивов: find, findIndex, filter
  • Методы массивов: map, sort
  • Методы массивов: reverse, split, join
  • Методы массивов: indexOf, lastIndexOf, includes
  • Методы массивов: reduce, spread
  • Методы массивов: Array.isArray, some, every
  • Методы массивов: flat, fill
  • Планирование вызова функции: setTimeout
  • Планирование вызова функции: setInterval
  • Объекты. Свойства.
  • Объекты. Методы
  • this, call, apply, bind
  • Замыкания
  • Прототипы
  • Promises (Обещания)
Powered by GitBook
On this page
  • var
  • let
  • const

Was this helpful?

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

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

PreviousПеременные в JavaScriptNextПреобразование типов

Last updated 4 years ago

Was this helpful?

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

Как я и говорил в предыдущем уроке, у нас имеются целых 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".

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

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

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

Generic badge