tgoop.com/brogrammist/102
Last Update:
JS Hoisting haqida yaxshi tushunchaga ega bo'lganlar uchun tepadagi misol oddiy.
Javob:
> undefined
> 5
Hoisting haqida qisqacha gaplashsak, hoisting bu e'lon qilingan funksiyalar va "var" o'zaruvchilarining interpretator tomonidan o'z scope lari tepasiga ko'chirilishidir. Shuning uchun ham biz funksiyalarni ular e'lon qilingan qatorlardan tepada chaqira olamiz.
Bu yerda "declaration" va "definition" farqini tushunish ham muhim. Declaraion - e'lon qilish, definition - aniqlanish (aniqlash?/ta'riflash?).
JS da "declaration" va "definition" tushunchasi faqat o'zgaruvchilar uchun mavjud. Tepadagi misolda "var a = 5
" ham "declaration", ham "definition". Agar ikkovini ajratsak:
var a; // declaration
a = 5; // definition
Hoisting "declaration"larni tepaga chiqaradi! Ya'ni ular hech qanday qiymatsiz e'lon qilinadi.
Lekin, JavaScript da funksiyalar uchun alohida "declaration" imkoniyati yo'q. Funksiyalar shunchaki "declare", e'lon qiliiadi.
Masalan, C++ da bu imkoniyat bor va funskiyalar chaqirilishidan oldin hech bo'lmasa "declare" qilinishi kerak, "definition" esa kodning oxirida kelsa ham bo'laveradi.
Hoisting haqida kuni bo'yi gaplashilsa bo'ladi, juda katta mavzu. Qo'ldan kelgancha qisqa tushuntirishga harakat qildim.
BY Brogrammist
Share with your friend now:
tgoop.com/brogrammist/102