Подъем в Javascript

В javascript hoisted objects — это объекты, к которым можно получить доступ до их объявления в коде без того, чтобы javascript не выдал ошибку, жалуясь на это.
Некоторые объекты могут быть подняты, например, переменные, функции и классы.

Переменные, объявленные с помощью var

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

console.log(name); //undefined
var name = "John";
Вход в полноэкранный режим Выйти из полноэкранного режима

javascript снова установит значение переменной в undefined вместо того, чтобы выдать ошибку.

Переменные, объявленные с помощью let и const

эти переменные не являются подхваченными и вызовут ошибку при обращении к ним до объявления

console.log(name); //reference error: name is not defined
const name = "John";
Вход в полноэкранный режим Выйти из полноэкранного режима

Функции

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

sayHi(); //Hi
function sayHi() {
   console.log("Hi");
}
Войти в полноэкранный режим Выход из полноэкранного режима

Однако стрелочные функции не поднимаются, даже если они объявлены с помощью var

sayHi(); // sayHi is not a function
var sayHi = () => console.log("Hi");
Войти в полноэкранный режим Выход из полноэкранного режима

Классы ES6

классы не поднимаются и вызывают ошибку при обращении к ним до объявления

const person = new Person(); //cannot access 'Person' before initialization

class Person {
  constructor() {}
}
Войти в полноэкранный режим Выход из полноэкранного режима

Резюме

переменные var: подняты и не определены по умолчанию
переменные const: не поддерживаются
функции: подняты и могут быть использованы
стрелочные функции: не поддерживаются
классы: не поддерживаются

Оцените статью
Procodings.ru
Добавить комментарий