Подъем в Javascript

Здравствуйте, ребята, сегодня я рассказываю о Hoisting в Javascript.

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

Пример 1 — Поднятие переменных

console.log(a)
var a = 10;
//output - undefined

console.log(b)
let b = 20;
// output - ReferenceError: Cannot access 'b' before initialization

console.log(c)
let c = 20;
//output - ReferenceError: Cannot access 'c' before initialization
Вход в полноэкранный режим Выход из полноэкранного режима
  • Как вы можете видеть, мы записали переменные в консоль перед их объявлением.
  • В случае переменной, объявленной с помощью ключевого слова «var», возвращается неопределенное значение, потому что часть объявления поднимается с помощью «var», а не часть инициализации.
  • В случае переменных, объявленных с помощью «let» и «const», возвращается ошибка ссылки, потому что «let» и «const» не имеют значения по умолчанию.

Пример 2 — Поднятие функции

hoistedFunction()

function hoistedFunction(){
  console.log("This function is called before it's declaration")
}
//output - This function is called before it's declaration


hoistedParameterisedFunction(10,20,30)

function hoistedParameterisedFunction(a,b,c){
  console.log(a,b,c)
}
//output - 10 20 30


hoistedArrowFunction()

let hoistedArrowFunction = () => {
  console.log("This function is called before it's declaration")
}

//output - ReferenceError: Cannot access 'hoistedArrowFunction' 
//before initialization
Вход в полноэкранный режим Выход из полноэкранного режима
  • Видно, что мы вызвали функцию до ее объявления, но она все равно выдает результат, потому что в случае с подъемом функции, все объявление функции вместе с ее телом поднимается, поэтому она выдает желаемый результат.
  • Мы также можем передавать параметры в вызов функции, которая поднимается.
  • В случае с функцией Arrow мы назначили анонимную функцию arrow переменной «hoistedArrowFunction», при ее подъеме возникнет ошибка ссылки, как и в случае с переменной.

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

СПАСИБО, ЧТО ПРОВЕРИЛИ ЭТОТ ПОСТ
Вы можете помочь мне, сделав пожертвование по ссылке ниже Спасибо👇👇👇 ^^
☕ —> https://www.buymeacoffee.com/waaduheck <—.

Также проверьте эти посты
https://dev.to/shubhamtiwari909/javascript-map-with-filter-2jgo

https://dev.to/shubhamtiwari909/e-quotes-3bng

https://dev.to/shubhamtiwari909/deploy-react-app-on-netlify-kl

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