Переменная — это контейнер, в котором хранятся значения данных на любом из языков программирования. В 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» также активен.