Переменная — это контейнер, в котором хранятся значения данных на любом из языков программирования. В javascript переменная должна быть создана с использованием одного из ключевых слов var, let или const. Но для переменных javascript может содержать множество типов данных, таких как String, Number, Array, Object и т. д.

Другими словами, переменные javascript не связаны напрямую с каким-либо конкретным типом данных, и любая из переменных может быть назначена и переназначена, кроме типа переменной const. О причинах этого будет рассказано позже в этой статье. Давайте начнем наш день переменных с понимания основ переменных в javascript.

1. Объявление переменной

«Объявление» переменной в javascript — это создание новой переменной с использованием одного из типов переменных. В приведенном ниже примере показано объявление двух переменных с ключевыми словами var и let.

Переменная с именем a, b была объявлена ​​с типами переменных var и let. Значения a или b не присвоены. Если мы соединим a и b, вывод будет неопределенным.

2. Инициализация переменных

Имя инициализации переменной — это сохранение значения в переменной. Инициализация может происходить во время объявления или после объявления. Инициализация может происходить, как показано ниже.

Значения были присвоены (инициализированы) элементам a и b во время объявления. Переменные c и d были объявлены отдельно, и часть инициализации выполняется после завершения объявления.

Пришло время обсудить каждый из трех типов переменных, представленных в javascript.

3. переменная

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

Вы будете почти уверены, что будет ReferenceError, так как в следующей строке после оператора консоли. Но сюда приходит магия (подъем), и давайте посмотрим на результат.

Мы обсудим подъем в другой статье, так как здесь мы сосредоточимся на типах переменных. Давайте определим скрытую историю ключевого слова «var». Ниже приведены особенности «var». Проще говоря, подъем — это перемещение всех объявлений наверх текущей области (наверх текущего скрипта или текущей функции).

я. Объявление переменной типа «var» и инициализация для нее значения. Теперь значение a равно 20.

II. Переназначение значения переменной «var» также возможно. Первый вывод будет 20, а второй вывод будет 30.

III. Переменные типа «var» могут быть переобъявлены без каких-либо проблем. Значение переменной a отображается как 1 в первой консоли. В третьей строке снова объявляем переменную a и присваиваем 2. Вторая консоль выведет 2.

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

Здесь x находится в контексте функции foo, а y — в контексте функции bar. Поэтому мы не можем получить доступ к y в области foo, так как y принимается только в области bar.

4. пусть

Ключевое слово let было введено в ECMAScript 2015 и предоставляет переменные с блочной областью действия. Ключевое слово let несовместимо с подъемом. Переменные с ключевым словом let не перемещаются в верхнюю часть текущей области. Поэтому нельзя использовать переменные let перед объявлением.

я. Объявление переменной типа «let» и инициализация для нее значения. Сначала мы объявляем (создаем) переменную «a», а затем присваиваем ей (инициализируем) 10. затем мы объявляем и инициализируем «b» значением 10.

II. Значения могут быть переназначены переменным let. Первый вывод будет 10, а второй вывод будет 20.

III. Повторное объявление типа let зависит от контекста выполнения. В том же блоке выполнения он избегает повторного объявления переменных типа let. Помимо той же области видимости блока, мы можем повторно объявить переменные типа let в разных областях.

В заголовке 4–3.0 не позволяет повторно объявлять переменную let в той же области видимости.

На рис. 4.4.0 показано повторное объявление одной и той же переменной с типом let, но с другими областями действия. Первое объявление «a» находится в глобальной области видимости, и первая консоль выведет 10. Третья строка создает новую область видимости, так как там есть скобки. Четвертая строка переопределяет переменную «a» в этой области блока, а пятая строка выводит 20. Но она доступна только в конкретном блоке. После области блока следующая консоль будет регистрировать 10, так как первая строка была объявлена ​​глобальной.

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

В функции let он создает переменную x и присваивает ей значение 1. В третьей строке есть область блока. Четвертая строка создала еще одну переменную x, но она отличается от объявленной x во второй строке.

5. константа

Ключевое слово const было введено в ECMAScript 2015 и предоставляет переменные с блочной областью. Ключевое слово const не совместимо с подъемом. Переменные с ключевым словом const не перемещаются в верхнюю часть текущей области. Поэтому нельзя использовать «константные» переменные перед объявлением.

я. Объявление переменной типа «const» и инициализация для нее значения. Нам нужно инициализировать переменную типа const после ее объявления. В отличие от let или var, мы не можем сначала объявить, а потом инициализировать.

Рисунок 5-2.0 описывает одновременное объявление и инициализацию. В противном случае будет выдана ошибка, как на рис. 5–1.0.

II. Значения не могут быть переназначены константным переменным. В первой строке мы объявляем «a» и инициализируем ей 10. В третьей строке мы собираемся присвоить 20 для «a», что сгенерирует ошибку «TypeError: Assignment to Constant Variable», поскольку константные переменные не могут быть переназначены.

III. Повторное объявление типа const зависит от контекста выполнения. В том же блоке выполнения он избегает повторного объявления переменных типа «const». Помимо той же области видимости блока, мы можем повторно объявить переменные типа «const» в разных областях видимости.

Рисунок 5-4.0 позволяет избежать повторного объявления одной и той же константы в той же области видимости.

На рис. 5.5.0 показано повторное объявление одной и той же переменной с типом const, но с другими областями действия. Первое объявление «x» находится в глобальной области видимости. Третья строка создает новую область видимости, так как там есть скобки. Четвертая строка переопределяет переменную «a» в этой области блока, а пятая строка выводит 20. Но она доступна только в конкретном блоке. После области блока следующая консоль будет регистрировать 10, так как первая строка была объявлена ​​глобальной.

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

В функциональном тесте он создает переменную x и присваивает ей 1. В третьей строке есть область блока. Четвертая строка создала еще одну переменную x, но она отличается от объявленной x во второй строке.

РЕЗЮМЕ

После введения ES6 тип переменной «var» был заменен на «let» и «const», но по-прежнему «var» также активен.