JS hoisting
Ko‘tarish - bu deklaratsiyalarni yuqoriga ko‘chirish uchun JavaScript-ning standart xatti-harakati.
JavaScript deklaratsiyasi yuklangan
JavaScript-da o‘zgaruvchi ishlatilgandan keyin e’lon qilinishi mumkin.
Boshqa so‘zlar bilan aytganda; o‘zgaruvchi e’lon qilinishidan oldin ishlatilishi mumkin.
1-misol 2-misol bilan bir xil natijani beradi:
1-misol
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
var x; // Declare x
O‘zingiz sinab ko‘ring »
2-misol
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
O‘zingiz sinab ko‘ring »
Buni tushunish uchun siz "ko‘tarish" atamasini tushunishingiz kerak.
Ko‘tarish JavaScript-ning standart xatti-harakati bo‘lib, barcha deklaratsiyalarni joriy qamrovning yuqori qismiga (joriy skript yoki joriy funksiyaning tepasiga) ko‘chirishdir.
let va const kalit so‘zlari
let va const bilan aniqlangan o‘zgaruvchilar blokning yuqori qismiga ko‘tariladi, lekin ishga tushirilmaydi.
Ma’nosi: Kod bloki o‘zgaruvchidan xabardor, lekin uni e’lon qilinmaguncha ishlatib bo‘lmaydi.
let o‘zgaruvchini e’lon qilishdan oldin ishlatish a ga olib keladi
ReferenceError .
O‘zgaruvchi blokning boshidan e’lon qilinmaguncha "vaqtinchalik o‘lik zonada" bo‘ladi:
Misol
This will result in aReferenceError:
carName = "Volvo";
let carName;
O‘zingiz sinab ko‘ring »
E’lon qilinishidan oldin const o‘zgaruvchisidan foydalanish sintaksis xatosidir, shuning uchun kod oddiygina ishlamaydi.
Let va const haqida ko‘proq JS Let / Const da o‘qing.
JavaScript-ni ishga tushirish ko‘tarilmaydi
JavaScript faqat deklaratsiyalarni ko‘taradi, ishga tushirishni emas.
1-misol 2-misol bilan bir xil natijani bermaydi:
1-misol
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
O‘zingiz sinab ko‘ring »
2-misol
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y
O‘zingiz sinab ko‘ring »
Oxirgi misolda y ning aniqlanmaganligi mantiqiymi?
Buning sababi shundaki, ishga tushirish (=7) emas, balki faqat deklaratsiya (var y) yuqoriga ko‘tariladi.
Yuk ko‘tarish tufayli y uni ishlatishdan oldin e’lon qilingan, lekin ishga tushirishlar ko‘tarilmagani uchun y qiymati aniqlanmagan.
2-misol yozish bilan bir xil:
Misol
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y
O‘zingiz sinab ko‘ring »
O‘zgaruvchilaringizni tepada e’lon qiling!
Yuk ko‘tarish (ko‘p ishlab chiquvchilar uchun) JavaScript-ning noma’lum yoki e’tibordan chetda qolgan harakatidir.
Agar ishlab chiquvchi yuk ko‘tarishni tushunmasa, dasturlarda xatolar (xatolar) bo‘lishi mumkin.
Xatolarni oldini olish uchun har doim barcha o‘zgaruvchilarni har bir doiraning boshida e’lon qiling.
JavaScript kodni shunday izohlaganligi sababli, bu har doim yaxshi qoidadir.
Strict mode rejimida JavaScript e’lon qilinmagan o‘zgaruvchilardan foydalanishga ruxsat bermaydi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
