Подъем JavaScript (с примерами)

В этом руководстве вы узнаете о подъеме JavaScript с помощью примеров.

Подъем в JavaScript - это поведение, при котором перед объявлением можно использовать функцию или переменную. Например,

 // using test before declaring console.log(test); // undefined var test;

Вышеупомянутая программа работает, и результат будет неопределенным. Вышеупомянутая программа ведет себя как

 // using test before declaring var test; console.log(test); // undefined

Поскольку переменная test только объявлена ​​и не имеет значения, ей undefinedприсваивается значение.

Если вы хотите узнать больше о переменных, посетите Переменные JavaScript.

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

Переменный подъем

В терминах переменных и констант, ключевое слово varподнято и letи constне допускает подъем.

Например,

 // program to display value a = 5; console.log(a); var a; // 5

В приведенном выше примере переменная a используется перед ее объявлением. И программа работает и отображает вывод 5. Программа ведет себя как:

 // program to display value var a; a = 5; console.log(a); // 5

Однако в JavaScript инициализации не поднимаются. Например,

 // program to display value console.log(a); var a = 5;

Вывод

 неопределенный

Вышеупомянутая программа ведет себя как:

 var a; console.log(a); a = 5;

Только объявление перемещается в память на этапе компиляции. Следовательно, значение переменной a связано с undefinedтем, что a печатается без его инициализации.

Кроме того, когда переменная используется внутри функции, она поднимается только в верхнюю часть функции. Например,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Вывод

 привет Uncaught ReferenceError: b не определен

В приведенном выше примере переменная b поднимается в начало функции greetи становится локальной переменной. Следовательно, b доступен только внутри функции. b не становится глобальной переменной.

Чтобы узнать больше о локальных и глобальных переменных, посетите JavaScript Variable Scope.

Примечание . При подъеме объявление переменной доступно только в непосредственной области видимости.

Если переменная используется с letключевым словом, эта переменная не поднимается. Например,

 // program to display value a = 5; console.log(a); let a; // error

Вывод

 Uncaught ReferenceError: невозможно получить доступ к 'a' до инициализации

При использовании letсначала необходимо объявить переменную.

Функция подъема

Функция может быть вызвана перед ее объявлением. Например,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Вывод

 Всем привет

В приведенной выше программе функция greetвызывается перед ее объявлением, и программа показывает результат. Это связано с подъемом.

Однако, когда функция используется как выражение , возникает ошибка, потому что поднимаются только объявления. Например;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Вывод

 Uncaught ReferenceError: приветствие не определено

Если бы varон использовался в вышеуказанной программе, ошибка была бы такой:

 Uncaught TypeError: приветствие не является функцией

Примечание . Как правило, подъем не выполняется в других языках программирования, таких как Python, C, C ++, Java.

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

В случае переменных лучше использовать letчем var.

Интересные статьи...