JavaScript

Что такое Var и Let, их функции и какая разница между ними

Lorem ipsum dolor

Молодые программисты при изучении языка программирования JavaScript часто сталкиваются с такими терминами, как «var» и «let», и не всегда понимают, в чем разница между ними. Оба термина выполняют одинаковую функцию — объявляют о создании ячейки в памяти для новой переменной. Однако такую же функцию выполняет еще один оператор, который также нужно рассматривать в кипе с этими двумя. Итак, для объявления переменных в JavaScript используют 3 оператора:

  • var;

  • let;

  • const.

Они выполняют одно и то же действие, но делают это совершенно по-разному. Давайте выясним, в чем разница между var, let и const.

 

В чем разница между var, let и const?

Шаблон использования таких операторов следующий:

var a = <значение переменной> {

//Блок с кодом, где используется переменная «а»

}

или:

let a = <значение переменной> {

//Блок с кодом, где используется переменная «а»

}

 

или:

const a = <значение переменной> {

//Блок с кодом, где используется переменная «а»

}

 

«Var» и «let» очень похожи друг на друга, и для молодых программистов разница между ними не всегда очевидна сразу, но она есть и очень существенная. «Const» немного отличается от данной пары.

Разница между «var» и «let» заключается в следующем:

  1. Область видимости. Переменная, которая объявлена при помощи «let», видна только в пределах кода, обозначенного «фигурными скобками». Это подразумевает, что к ней невозможно обратиться за областью «скобок» даже в пределах одной функции. А переменная, которая объявлена при помощи «var», видна во всей функции даже за пределами кода, обозначенного «{...}».

  2. Доступность переменной. Переменная, которая объявлена с использованием оператора «let», становится доступной после ее объявления. То есть невозможно в пределах одной функции сначала «изъять» значение к переменной, а только потом ее объявить. Это вносит строгость и порядок в код. Переменная, которая объявлена с использованием оператора «var», будет доступной еще до ее объявления. То есть можно к ней обратиться и провести какие-то операции, а только потом объявить ее значение. Такая разница между «let» и «var» выглядит как жесткое ограничение, однако на самом деле с использованием «let» исключаются многие непредвиденные ошибки в коде.

  3. Использование переменной в цикле. Переменная, которая объявлена при помощи «var», объявляется один раз и используется во всех итерациях цикла, а иногда даже и после цикла. С переменной, объявленной при помощи «let», все совсем не так. Для каждой отдельной итерации цикла необходимо объявлять собственную независимую переменную «let». Такой подход помогает решить известную проблему с замыканиями.

Оператор «const»

Он также используется для объявления переменных в коде. Однако применяется только в тех случаях, когда нужно объявить переменную, которую нельзя будет изменять. То есть создает своего рода константу из переменной.

Однако не стоит путать с математическими константами типа «числа Пи». Объявляя «число Пи», также нужно будет использовать оператор «const», но его можно использовать и в любых других случаях. Например:

const banana = 15

 

В этом случае если переменная «banana» будет равна любому другому значению, то в коде возникнет ошибка.

Если рассматривать технические тонкости переменной «const», то тут полная идентичность с объявлением переменных при помощи оператора «let». Поэтому разница между «const» и «var» будет такой же, как и разница между «let» и «var», при этом добавляется пункт, что «const» объявляет константу. Разница между «const» и «let» заключается в том, что переменная «let» может быть перезаписана в дальнейшем, а переменная «const» не может, так как ее значение защищено и зафиксировано.

Однако нужно отметить, что в случаях, когда с помощью оператора «const» объявляется объект или массив, «постоянством» будет обладать сам объект или массив, но не значения, которые хранятся внутри. Например:

const  worker = {

   name : "Тихон"

   age: "23"

}

 

В этом случае будут допустимыми изменения типа:

worker.name = "Дормидонт";

worker.age = "58";

 

Но недопустимыми будут изменения типа «worker = 10», это вызовет ошибку в коде. Точно такая же ситуация будет возникать и при работе с массивами-константами.

Заключение

Оператор «var» пришел в язык программирования JavaScript намного раньше, чем «let» и «const». Хоть он и считается «устаревшей технологией», он до сих пор активно применяется многими JS-разработчиками. «Let» и «const» были «введены» в язык немного позже и уже стали рекомендованными операторами для объявления переменных.

Мы специально в сегодняшней публикации объяснили, в чем разница между «let», «var» и «const», чтобы вам было легче между ними выбрать. Использование «var» не является ошибкой, однако код с этим оператором иногда ведет себя очень непредсказуемо, поэтому его применение требует понимания процессов JavaScript. «Let» и «const» более «строгие», поэтому исключают многие неочевидные ошибки в скриптах. Поэтому лучше обучаться использовать для переменных именно эти операторы.

Схожие статьи

Java для тестировщиков: как и когда производить тестирование
JavaScript

Java для тестировщиков: как и когда производить тестирование

Учебный курс по React, часть 4: родительские и дочерние компоненты
JavaScript

Учебный курс по React, часть 4: родительские и дочерние компоненты

Функциональное программирование в Java: определение, паттерны и применение
JavaScript

Функциональное программирование в Java: определение, паттерны и применение

Как научиться делать JavaScript-анимации: виды и примеры
JavaScript

Как научиться делать JavaScript-анимации: виды и примеры

×