Здравствуйте, ребята, сегодня я рассказываю о 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