В ES6 появилось множество замечательных новых функций, включая два новых способа определения переменных в JavaScript. Теперь есть три разных ключевых слова или идентификатора для объявления переменной в JavaScript. В этой статье я объясню основные различия между var, let и const и объясню, когда их следует использовать.

Чтобы полностью понять различия между каждым из идентификаторов, нам сначала необходимо понять концепцию области.

Что такое объем?

Область действия определяет доступность или видимость переменных для JavaScript. В JavaScript есть три типа области видимости:

1. Глобальный охват

2. Область действия (локальная)

3. Область действия блока (новое в ES6)

Переменные, объявленные вне функции, находятся в глобальной области видимости. Доступ к глобальным переменным и их изменение можно получить в любой другой области. Переменные, определенные в функции, находятся в локальной области видимости и недоступны в других функциях. Каждая функция при вызове создает новую область видимости, поэтому переменные с одинаковыми именами могут использоваться в разных функциях.

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

Ключевое слово Var

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

Переменные, объявленные с использованием ключевого слова var, имеют глобальную или функциональную область видимости, они не поддерживают область видимости на уровне блоков. Это означает, что если переменная определена в цикле или в операторе if, к ней можно получить доступ вне блока и случайно переопределить, что приведет к ошибочной программе. Как правило, вам следует избегать использования ключевого слова var.

Ключевое слово Let

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

Ключевое слово Const

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

Резюме

Как правило, вы всегда должны объявлять переменные с помощью const. Если вы понимаете, что значение переменной необходимо изменить, вернитесь и измените его на let.

Используйте let, когда знаете, что значение переменной изменится.
Используйте const для всех остальных переменных.
Не используйте var.