Top JavaScript interview savollarida tushadigan va kerakli mavzulardan biri bo’lgan JavaScriptda Hoisting tushinchasi haqida gaplashib o’tamiz.
Category
JavaScript
Javascript interview
Interview
Hoisting
Cover
Slug
javascript-hoisting
Date
‣
author
Published
Published
Assalomu Alekum.
Bugun yana bir muhim bo’lgan mavzu JavaScriptda Hoisting tushinchasini ko’rib chiqamiz.
JavaScriptda Hoisting:
bu o'zgaruvchilar (var, let, const) va funksiyalar deklaratsiyalarini qaysidir ma'noda "ko'tarish" jarayoni. Bu degani, deklaratsiyalar kodda ishlatilishidan oldin, kompilyatsiya vaqtida ko'tariladi.
JavaScriptda hoisting tufayli, siz o'zgaruvchilarni ularni e'lon qilishdan oldin ishlatishingiz mumkin, ammo bu holatda o'zgaruvchiga qiymat berishdan oldin u undefined qiymatini oladi.
Misol:
console.log(x); // undefined
var x = 5;
console.log(x); // 5
Yuqoridagi kodda var x o'zgaruvchisi deklaratsiyasi hoisting tufayli yuqoriga "ko'tariladi", lekin unga qiymat berish jarayoni o'z joyida qoladi. Shuning uchun birinchi console.log(x)undefined qiymatini chiqaradi.
Hoistingni aniqlash
Yuqoridagi misol shunday ko'rinadi:
var x;
console.log(x); // undefined
x = 5;
console.log(x); // 5
Funksiyalar bilan Hoisting
Funksiya deklaratsiyalari ham hoistingga duch keladi. Bu degani, siz funksiyalarni e'lon qilishdan oldin chaqirishingiz mumkin.
sayHello(); // "Hello, world!"
function sayHello() {
console.log("Hello, world!");
}
Bu kodda sayHello funksiyasi hoisting tufayli yuqoriga ko'tariladi, shuning uchun uni e'lon qilishdan oldin ham chaqirishingiz mumkin.
Let va Const bilan Hoisting
let va const bilan e'lon qilingan o'zgaruvchilar ham hoistingga uchraydi, lekin ular "Temporal Dead Zone" (TDZ) deb ataladigan fazoda bo'ladi. Bu o'zgaruvchilar o'z joyida hoisting qilinadi, lekin ularga qiymat berilmaganligi sababli ularni ishlatishga urinish xatoga olib keladi.
console.log(y); // ReferenceError: Cannot access 'y' before initialization
let y = 10;
Bu holatda y o'zgaruvchisi hoisting qilinadi, lekin u TDZda bo'lgani uchun uni ishlatishga urinish xatoga olib keladi.
Xulosa: Hoisting JavaScriptning asosiy xususiyatlaridan biri bo'lib, deklaratsiyalarni kodning yuqorisiga "ko'tarilishiga" sabab bo'ladi. Ammo, bu xatti-harakatni tushunib, kodni aniq va tushunarli yozish muhimdir.