«!!» operatori nima uchun ishlatiladi?


Download 103.45 Kb.
Pdf ko'rish
Sana17.08.2023
Hajmi103.45 Kb.
#1667806
Bog'liq
web



«!!» operatori nima uchun ishlatiladi?
JavaScript'da "!!" (iki negatsiya) operatori, bir ifodani true yoki false qiymatiga o'zgartirish uchun ishlatiladi. Bu 
operatorning ishlatilishi qiymatning bo'lishi yoki bo'lmasligiga qarab natijani bool (mantiqiy qiymat) sifatida qaytaradi.
15.Nima uchun obj.someprop.x muvaffaqiyatsiz tugadi?
const obj = {}
console.log(obj.someprop.x)
obj.someprop.x ni yuklab, JavaScript TypeError xatoni qaytaradi, chunki obj obyekti 
someprop xususiyatiga ega emas. Buning natijasida, someprop xususiyati undefned 
qiymatini qaytaradi. Bu esa undefned.x degan ifodani amalga oshirishga olib keladi.
16.Nima uchun ikkita o'xshash ob'ektni solishtirish natijasi noto'g'ri?
let a = {
a: 1
}
let b = {
a: 1
}
let c = a
console.log(a === b) // false
console.log(a === c) // true хм...
Natijada console.log(a === b) ifodasi false qiymatini qaytaradi, chunki a va b o'zgaruvchilari bir-biriga teng emas, 
ularning qiymatlari va xususiyatlari bir-biridan farq qiladi.
a va b o'zgaruvchilarining qiymatlari esa a: 1 deb bir xil. Bu, obyektning a 
nomli xususiyati 1 qiymatiga ega bo'lishi demak.
console.log(a === c) ifodasi esa true qiymatini qaytaradi, chunki a va c 
o'zgaruvchilari bir-biriga teng. c o'zgaruvchisi a ning o'ziga tenglash orqali 
uning qiymatini saqlayadi. Buning natijasida a va c o'zgaruvchilarining 
qiymatlari va xususiyatlari bir-biriga to'g'ri keladi.
Demak, a va c o'zgaruvchilari bir-biriga qarama-qarshi ssilka (reference) 
orqali bog'lanib turgan obyektning o'zgaruvchilaridir. a va c obyektlarining 
xususiyatlari va qiymatlari o'zgaruvchilarni tenglash orqali almashtirilishi 
mumkin. Buna o'xshash o'zgaruvchilarga ssilkali o'zgaruvchi (reference type 


variable) deyiladi.
17.Bir qatorda bir nechta ifodalar qanday yoziladi?
Bir qatorda bir nechta ifodalar JavaScript tilida vergul bilan ajratilgan shaklda yoziladi.
18 Ko'tarish (Hoisting) nima?
Ko'tarish (hoisting), JavaScriptning bajarilishi davomida o'zgaruvchilar va funksiyalar e'lonlarini, ularning o'zgaruvchanlarini yuqori 
satar (yuqori qism)da bo'ladigan tarzda boshqarish imkonini beradigan davlatdir.
JavaScript kodining bajarilish jarayonida, dastur boshlanganda, dastur o'qilganda yoki funktsiyani 
chaqirganda, JavaScript tezkorligi uchun barcha o'zgaruvchilar va funksiyalar e'lonlari o'zgaruvchilar 
boshlang'ich qiymatini olish va funksiyalar esa boshlang'ich funktsiyalarini olish jarayonini amalga 
oshiradi.
19.Scope nima?
Scope (doimiylik) JavaScriptda o'zgaruvchilar, funksiyalar va 
obyektlarning e'lonlarining, ularga murojaat qilishning va ulardan 
foydalanishning mumkin bo'lgan chegarasini (hududini) ifodalaydi. Scope,
o'zgaruvchilar va funksiyalar bilan bog'liq ma'lumotlarni saqlash va ularga 
murojaat qilishning qoidalari va qoidabuzarliklari to'plami hisoblanadi.
JavaScriptda turli turdagi scope'lar mavjud bo'lishi mumkin:
1. Global Scope: Global scope, dastur o'rnatilganda bo'lgan eng katta 
scope hisoblanadi. Global scope ichida e'lon qilingan o'zgaruvchilar va 
funksiyalar, dastur barcha qatorlari bo'yicha murojaat qilinishi mumkin.
2. Local Scope: Local scope, funksiya ichida yoki blok ichida (if, while, for 
loop kabi) e'lon qilingan o'zgaruvchilar va funksiyalar uchun 
chegaralangan sahifa hisoblanadi. Local scope, faqat o'zining yoki 
undan ichida e'lon qilingan funksiyalar va o'zgaruvchilar orqali murojaat
qilish imkonini beradi. Boshqa funksiyalar yoki bloklar ichida e'lon 
qilingan o'zgaruvchilar boshqa bloklar yoki funksiyalar bilan o'zaro 
ta'sir qilmaydi.
20.
Closures nima?
Closures (yopiq funksiyalar) JavaScriptda funksiyalar bilan bog'liq 
ma'lumotlarni saqlash, ularga murojaat qilish va ulardan 
foydalanishning imkonini beradigan davlatdir. Closures, funksiyani 
yaratish vaqti bajarilgan bo'lsa ham, undan tashqari kontekstdagi 
o'zgaruvchilarga yoki funksiyalariga murojaat qilish imkonini beradi.
Closures bir nechta asosiy xususiyatlarga ega:
1. Closures o'zgaruvchilarga murojaat: Yopiq funksiya, o'z ichida yoki 
tashqaridan e'lon qilingan o'zgaruvchilarga murojaat qilishni o'z ichiga 
oladi. Bu, funksiya yaratilgandan so'ng ham o'zgaruvchilarga murojaat 
qilish imkonini beradi.
2. Kontekstni saqlash: Closures, funksiyani yaratish vaqti bajarilgan bo'lsa 
ham, undan tashqari funksiyaning o'zgaruvchilarini va kontekstini 
saqlash imkonini beradi. Bu, funksiya bajarilgan vaqtda mavjud bo'lgan 
o'zgaruvchilarni saqlab turadi va ularga murojaat qilishni mumkin 
qiladi.


3. Funksiyani uzatish: Closures, funksiyani ichida yopiq funksiyalar 
yaratish va ularga o'zgaruvchilarga murojaat qilish imkonini beradi. 
Bunda yopiq funksiya o'zgaruvchilariga va boshqa funksiyalariga 
o'zgaruvchilar bilan murojaat qilishga ruxsat beriladi.
Closures, funksiyalar orqali ma'lumotlarni yopish, ozod qolish va 
xususiyatlarni saqlash, kontekstni saqlash, faktorialisatsiya, memoizatsiya va 
o'zgaruvchilarni bajarilish bo'yicha dasturlashning boshqa ko'plab 
qulayliklarini o'z ichiga oladi.
Closures muhim bir konsept bo'lib, JavaScriptda yorqin yaratuvchi va quvvatli
funksiyalar yozishning asosiy vositalaridan biri hisoblanadi.
21 . JSda qanday qiymatlar noto'g'ri?
const falsyValues = ['', 0, null, undefined, NaN, false]
javob : null ,udefined , NAN
22.
JSda Qiymat noto'g'ri ekanligini qanday tekshirish mumkin?
JavaScript'da qiymatlarning noto'g'ri bo'lishini tekshirish uchun bir nechta usullar mavjud. Quyidagi usullardan birini 
ishlatib, qiymatlarning noto'g'ri bo'lishini tekshirishingiz mumkin:
1.typeof operatori: typeof operatori o'zgaruvchining turini aniqlab beradi. 
Agar o'zgaruvchi "undefined" yoki "null" bo'lsa, bu noto'g'ri qiymat 
bo'lganligini ko'rsatadi.
isNaN() funksiyasi: isNaN() funksiyasi berilgan qiymatning son 
emasligini tekshiradi. Agar qiymat son bo'lmasa yoki son emasligini 
bildirgan NaN bo'lsa, bu noto'g'ri qiymat bo'lganligini ko'rsatadi.
23."Use strict" direktivasi nima uchun ishlatiladi?
"use strict" direktivasi JavaScriptda qoidabuzarliklarni kamaytirish va xatolar yuz berishini oldini 
olish uchun ishlatiladi. Bu direktiva JavaScript dasturlarida eng yuqori darajadagi koddan oldin 
yozilishi kerak va undan so'ng barcha kod qoidabuzarliklarni kamaytirish rejimida bajariladi.
24.Thisning qanday ahamiyati bor?
"
This" kalit so'zi JavaScriptda ma'lum bir kontekstni ifodalaydi va shu kontekst ichida yozilgan 


kodda o'zgaruvchilarga va funktsiyalarga murojaat qilish imkonini beradi. "This" kontekstdagi 
obyektni yoki funksiyani ifodalayadi va uning yordamida shu obyekt yoki funksiya ichidagi 
ma'lumotlarga murojaat qilish mumkin.
25.Ob'ekt prototipi nima?
JavaScriptda har bir ob'ektning prototipi (prototype) mavjud bo'ladi. Prototip, ob'ektning yana 
boshqa bir ob'ektga murojaat qilish imkonini beradi. Boshqa so'zlar bilan aytganda, prototip, bir 
ob'ektni ota-ona ob'ekti sifatida tasavvur qilish imkonini beradi.
Prototip, bir ob'ektning xususiyatlari va metodlari uchun asosiy ma'lumotlar 
to'plamini ifodalaydi. Bitta ob'ektning prototipi o'z ichida ushbu xususiyatlar 
va metodlarni saqlaydi. Agar bir ob'ektga murojaat qilishda o'zgaruvchi yoki 
metod topilmasa, JavaScript prototipni tekshiradi va murojaat qilingan 
ob'ektning prototipida murojaat qiladi.
Prototip tizimi JavaScriptda ob'ekt-orqali turli o'zgaruvchi va metodlarni 
boshqarishni ta'minlaydi. Prototip tizimi ob'ektlar orasidagi turli o'zaro 
munosabatlarni tashkil etishda ham keng qo'llaniladi.
Prototiplar, ob'ektlarning tashqi xususiyatlari bilan biriktirilgan hamda ularga
murojaat uchun qo'llaniladigan o'zgaruvchilar va metodlar bilan to'ldirilgan 
bo'lishi mumkin
26.IIFE nima?
IIFE (Immediately Invoked Function Expression) JavaScriptda bitta funksiya ifodasini 
to'g'ridan-to'g'ri bajarish uchun ishlatiladigan amaliy ifoda. Bu ifoda o'zining e'lonidan 
so'ng yaratiladi va to'g'ridan-to'g'ri chaqiriladi.
IIFE-lar qo'shimcha o'zgaruvchilar va funksiyalarni "global scope" dan 
isolatsiya qilishda foydalaniladi. Ular kodni alohida modularga bo'lishni, 
o'zgaruvchilarni muhafaza qilishni va kodning qismlarini noyoblashni 
ta'minlaydi.
27.Function.prototype.apply usuli nima uchun ishlatiladi?
usuli JavaScriptda funksiya ob'ekti ustida ishlatiladi. U bu usul orqali bir funksiya boshqacha 
ob'ektda ishlatilgan bo'lib, funksiya bajarilish paytida "this" kalit so'zi orqali murojaat qilish kerak 
bo'lgan ob'ektni belgilash imkonini beradi.
28.Function.prototype.call usuli nima uchun ishlatiladi?
u
suli JavaScriptda funksiya ob'ekti ustida ishlatiladi. U bu usul orqali bir funksiya boshqacha 
ob'ektda ishlatilgan bo'lib, funksiya bajarilish paytida "this" kalit so'zi orqali murojaat qilish kerak 
bo'lgan ob'ektni belgilash imkonini beradi.
29.Call va apply usullari o'rtasidagi farq nima?


usullari bir funksiya ob'ektini boshqa ob'ekt ustida ishlatish uchun JavaScriptda ishlatiladi. 
Ularning asosiy farqi argumentlarini uzatishning usuli bilan bog'liq.
30.Function.prototype.bind usuli nima uchun ishlatiladi?
Function.prototype.bind usuli JavaScriptda funksiya ob'ektini belgilangan bir ob'ektga 
bog'lash uchun ishlatiladi. U belgilangan ob'ektni this murojaat ob'ekti sifatida o'z ichiga oladi va
yangi bir funksiya ob'ektini qaytaradi.
31.
Funksional dasturlash nima va JS ning qanday xususiyatlari uni
funksional dasturlash tili sifatida gapirishga imkon beradi?
Funksional dasturlash bir dasturlash paradigmasidir, uning asosiy mablag'laridan biri esa funksiyalarga e'tibor
berishdir. JavaScript esa funksional dasturlash tili sifatida ham ishlatilishi mumkin.
JavaScriptning quyidagi xususiyatlari uni funksional dasturlash tili sifatida 
gapirishga imkon beradi:
1. Funksiyalar birinchi klass ob'ekti sifatida ishlatiladi: JavaScriptda 
funksiyalar ob'ektlar sifatida qaralganligi uchun, ularga qiymat sifatida 
murojaat qilish, ularni o'zaro uzatish, bir joydan boshqa joyga jo'natish 
va boshqalar kabi amallar bajarish mumkin.
2. Funksiyalar o'z ichiga boshqa funksiyalar o'rtasida ishlash imkonini 
beradi: JavaScriptda funksiyalar birinchi klass ob'ektlar bo'lib, ular o'z 
ichiga boshqa funksiyalarni o'zlashtirish va ularni o'zaro uzatish 
imkonini beradi. Bu, keng tarqalgan funksional dasturlash prinsiplarini 
amalga oshirishga imkon beradi, masalan, funktsiyalarni parametr 
sifatida uzatish, funktsiyalarni qaytib keluvchilar sifatida qabul qilish, 
funktsiyalarni dinamik ravishda yaratish, chaining (suzuvchi) usuli bilan 
ishlash va boshqalar.
3. Anonim va nomli funksiyalar: JavaScriptda anonim (isimsiz) funksiyalar 
yaratish imkoniga ega bo'lib, ularni nomlangan funksiyalar sifatida ham 
ishlatish mumkin. Anonim funksiyalar ko'p joyda kerak bo'lgan 
funksiyalarni yaratishda va o'zgaruvchilar qamrab olishida foydali 
bo'ladi.
4. Closures (yopilmalar): JavaScriptda funksiyalar yopilmalar sifatida 
ishlatilishi mumkin. Yopilmalar, funksiyalarga o'z vaqtida murojaat 
qilish imkonini beradi va ularning ichida yashirin o'zgaruvchilar bilan 
ishlashga imkon beradi.
5. Higher-order functions (yuqori darajali funksiyalar): JavaScriptda 
funksiyalar yuqori darajali ob'ektlar sifatida ishlatilishi mumkin. Bu, 
funksiyalarni boshqa funksiyalarga argument sifatida uzatish, ularni 
qaytarib olish va dinamik ravishda yaratish imkonini beradi.
32.
Yuqori tartibli funksiyalar nima?
Yuqori tartibli funksiyalar (higher-order functions) funksiyalarni argument sifatida qabul qilish, ularni qaytarish yoki 
dinamik ravishda yaratish imkonini beradigan funksiyalardir. Bu, funksiyalarni boshqa funksiyalar bilan ishlashga imkon


beradi va funksional dasturlash paradigmasining asosiy mablag'laridan biridir.
33.
Nima uchun JS dagi funksiyalar Birinchi toifali obyektlar deb 
ataladi?
JavaScriptda funksiyalar birinchi toifali obyektlar deb ataladi, chunku ular ham 
xususiyatlarga, ham metodlarga ega bo'ladilar.
34.
Array.prototype.map usulini qanday amalga oshirgan 
bo'lardingiz?
Array.prototype.map() usuli, JavaScriptda massivning har bir elementi uchun biror 
operatsiyani bajarish uchun ishlatiladi va yangi bir massiv qaytaradi. Ushbu usul orqali asl 
massivni o'zgartirmay, elementlarni nusxalay olasiz va ularga istalgan o'zgarishlarni 
qo'shishingiz mumkin.
35.
Array.prototype.filter usulini qanday amalga oshirgan 
bo'lardingiz?
Array.prototype.flter() usuli, massivning har bir elementini tekshirish va shartni 
qanoatlantiradigan elementlardan iborat yangi bir massiv qaytaradi. Ushbu usul orqali asl 
massivni o'zgartirmay, istalgan elementni saqlay olasiz.
Array.prototype.reduce usulini qanday amalga oshirgan bo'lardingiz?
Array.prototype.reduce() usuli, massivning har bir elementini bir-biriga qo'shib, hisoblash va 
o'zgarishlarni amalga oshirish uchun ishlatiladi. Ushbu usul orqali massivdagi elementlarni 
jamlash, umumiy qiymatni hisoblash va boshqa hisob-kitoblarni amalga oshirishingiz mumkin.
37.
Argumentlar obyekti nima?
Argumentlar obyekti, JavaScript funktsiyalari bilan birgalikda ishlatiladigan bir obyekt hisoblanadi.
Bu obyekt, funktsiyalarga berilgan argumentlarni saqlayuvchi obyekt sifatida ish qiladi.
JavaScript funktsiyalari argumentlar obyekti orqali argumentlarga murojaat 
qilishadi. Argumentlar obyekti funktsiya ichida arguments nomi bilan murojaat 
qilinadi. Bu obyekt massivga o'xshab, lekin massiv emas. Uning indekslari va .length 
xususiyati mavjud bo'lib, argumentlarni tartiblangan holda saqlaydi.


38.
Prototipga ega bo'lmagan ob'ekt qanday yaratiladi?
Ob'ekt literal orqali yaratish: Ob'ekt literal sintaksisi yordamida yangi ob'ekt yaratishingiz mumkin.
Bu usulda ob'ektning direkt ravishda prototipi bo'lmasligi uchun {} yoki {} belgilardan 
foydalanishingiz kerak.
javascriptCopy code
const obj = {}; // Prototipga ega bo'lmagan ob'ekt yaratish
1. Object.create() usulidan foydalanish: Object.create() usuli orqali yangi 
ob'ekt yaratishingiz mumkin va uni mavjud ob'ektning prototipi sifatida 
o'rnatishingiz mumkin.
javascriptCopy code
const protoObj = {
foo: 'Hello',
bar: 'World'
};
const obj = Object.create(protoObj); // Prototipga ega bo'lmagan ob'ekt yaratish
Yuqoridagi misolda protoObj ob'ekti foo va bar xususiyatlariga ega 
bo'lgan ob'ekt. Object.create() usuli orqali yangi obj ob'ekti yaratiladi va
protoObj ob'ektining prototipi sifatida o'rnatiladi.
2. new operatoridan foydalanish: new operatorini ob'ekt konstruktori bilan
birgalikda foydalanish orqali ham prototipga ega bo'lmagan ob'ekt 
yarata olasiz. Bunday ob'ekt yaratish uchun mos konstruktor 
funksiyaning prototipi mavjud bo'lmasligi kerak.
javascriptCopy code
function MyObject() {
this.name = 'John';
}
const obj = new MyObject(); // Prototipga ega bo'lmagan ob'ekt yaratish
Yukoridagi misolda MyObject konstruktor funksiyasi ob'ekt yaratish 
uchun ishlatiladi, va uni new operatori orqali chaqirish orqali yangi 
ob'ekt yaratiladi. MyObject ning prototipi bo'lmagani uchun obj ob'ekti 
prototipga ega bo'lmaydi.
Bunday usullar orqali prototipga ega bo'lmagan ob'ekt yaratishingiz mumkin. 
Bu ob'ektning boshqalar bilan bo'lgan aloqasi va ular bilan xususiyatlarini 
bo'lishi mumkin, lekin uning o'zining asosiy prototipi yo'q.
40.
ECMAScript nima?
ECMAScript (eskisi ES) JavaScript dasturlash tili uchun standartlar to'plamini ma'nosini anglatadi. 
ECMAScript standartlari JavaScriptning asosiy qoidalari, sintaksi, ob'ektlar, funksiyalar va boshqa
tarkibiy tavsifarni qamrab oladi. ECMAScript standartlari, JavaScriptning versiyalarini, 
yangiliklarini va o'zgarishlarini tartibga solish va qaydalarini belgilaydi.
41.
ES6 yoki ECMAScript2015 JSga nima olib keldi?
ES6 (ECMAScript 2015) JavaScriptga bir nechta yangiliklar va qo'shimchalar olib keldi. Bu versiya


JavaScriptning o'zida katta o'zgarishlarni kiritdi va bajarishga osonliklar qo'shdi. Ba'zi katta 
yangiliklar va o'zgarishlar quyidagilardir:
1. Let va const o'zgaruvchilari: let va const kalit so'zlarining qo'shilishi 
bilan o'zgaruvchilar blok skopiga ega bo'lishi va blokning tashqaridagi 
skopdan mahrum qilinishi mumkin bo'ldi. let o'zgaruvchi qiymatlarini 
o'zgartirishga, const esa o'zgaruvchilarni o'zgartirishsiz aniqlash uchun 
ishlatiladi.
2. Arrow (ko'tarish) funksiyalari: Arrow funksiyalari kichik sintaksis bilan 
funksiya tanlash imkoniyatini beradi. Ular nomi, parametrlari va 
funksiya tanlashi bilan qisqa sintaksisni taqdim etadi. Shuningdek, 
arrow funksiyalari o'zgaruvchi doirasini ota-ona funksiyasining 
doirasiga avtomatik ravishda bog'laydi.
3. Destructuring (qisqartirish): Destructuring imkoniyati ob'ektlar va 
massivlar bilan ishlashda keng qo'llaniladi. U qo'shimcha sintaksis 
orqali ob'ektlarning yoki massivlar elementlariga tezroq murojaat 
qilishni taqdim etadi.
4. Classlar: ES6 bilan klasslar JavaScriptga olib keldi. Klass sintaksisi 
ob'ekt-orientirovlangan dasturlashga oid konsepsiyalarni JavaScriptga 
kiritdi va ob'ektlarni yaratish, metodlarni qo'shish, kalit so'zlarini 
yuklash va boshqalarini bajarishga osonlik berdi.
5. Modullar: ES6 modullari modullashgan kodni yozish va ularni fayllar 
bo'yicha bo'lib olishga imkon beradi. Modullar JavaScript dasturlashida 
kodni qismlarga bo'lish, ko'chirish, import va export qilish imkonini 
beradi.
Bunda ayrim tan olingan yangiliklardan tashqari, ES6 JavaScriptning ko'p 
o'rnatilgan standartlari va funksiyalariga ham yana qo'shimchalar kiritdi. Bu 
versiya JavaScriptning o'zini kuchaytirib, yozishni hamdar qilishni 
osonlashtirdi va bir nechta matn qatormanining kodini qisqartirish 
imkoniyatini taqdim etdi.
42.
“Var”, “let” va “const” kalit so‘zlari o‘rtasidagi farq nima?
"var", "let" va "const" kalit so'zlari JavaScriptda o'zgaruvchilar va ob'ektlar e'lon qilish uchun 
ishlatiladi, lekin ularga o'zgartirishsiz vaqtni o'zgartiruvchi haqiqiy o'zgaruvchilar berishning bir 
nechta usullari. Ularning o'rtasidagi asosiy farqlar quyidagicha:
1. "var": Bu JavaScriptning eski versiyalaridan birida ishlatilgan 
o'zgaruvchi e'lon qilish usulidir. "var" kalit so'zi bilan e'lon qilingan 
o'zgaruvchilar funksiya skopida e'lon qilinadi va ushbu funksiya ichidagi
har qanday nuqtadan e'lon qilinadigan o'zgaruvchi ishlatilishi mumkin. 
"var" bilan e'lon qilingan o'zgaruvchilarin doirasi funksiya skopiga 
tegadi. Bunday o'zgaruvchilarga blok skopida e'lon qilingan 
o'zgaruvchilar kabi qoidalar taqsimlanmaydi. "var" o'zgaruvchilari 
hoisting qilinishi (ustunliklari yuqorida ko'rsatilgan) va global skopda 
bo'ladi.
2. "let": "let" kalit so'zi ES6 (ECMAScript 2015) bilan kiritilgan 
yangiliklardan biridir. "let" bilan e'lon qilingan o'zgaruvchilar blok 
skopiga ega bo'ladi. Bunday o'zgaruvchilar blok ichidagi qo'llanishlarida
ishlatiladi va o'zgaruvchining doirasini blok ichiga chekmaydi. "let" 
o'zgaruvchilari hoisting qilinmaydi, ya'ni ularni e'lon qilishlaridan oldin 


ularga murojaat qilib bo'lmaydi.
3. "const": "const" kalit so'zi ham ES6 bilan kiritilgan yangiliklardan 
biridir. "const" bilan e'lon qilingan o'zgaruvchilar ham blok skopiga ega 
bo'ladi. Ularning asosiy farqi "const" bilan e'lon qilingan o'zgaruvchilar 
o'zgaruvchilarga bir marta qiymat berilishi va undan so'ng 
o'zgartirishsiz qolishi kerakligi. Ya'ni, "const" bilan e'lon qilingan 
o'zgaruvchilarga qiymat bir marta beriladi va keyin o'zgarishi mumkin 
emas. "const" o'zgaruvchilari ham hoisting qilinmaydi va blok ichidagi 
qo'llanishlarida ishlatiladi.
43.Arrow Functions nima?
Arrow Functions (ko'tarish funksiyalari) JavaScriptda ES6 (ECMAScript 2015) bilan kiritilgan 
yangiliklardan biridir. Arrow Functions, funksiya tanlashda qisqa sintaksis va yangi usulni taqdim 
etadi.
44.Classes nima?
Klasslar JavaScriptda ob'ekt-orientirovlangan dasturlashni osonlashtirish uchun kiritilgan 
yangiliklardan biridir. Klasslar ob'ektlar yaratish, ularning xususiyatlarini (property) va metodlarini 
(method) tanlash imkonini beradi.
45.Template Literals nima?
Template literallar JavaScriptda matnlar (stringlar) yozishni osonlashtirish uchun kiritilgan 
yangiliklardan biridir. Ular matnlar ichida o'zgaruvchilar, ifodalar va boshqa matnlar bilan 
birlashtirilgan kodlar yozishga imkon beradi.
46.Object Destructuring nima?
Object destructuring JavaScriptda ob'ektlardan kerakli xususiyatlarni (property) ajratishni 
osonlashtiradigan sintaksisdir. Bu sintaksis yordamida ob'ektning xususiyatlarini alohida 
o'zgaruvchilarga joylashtirish va ulardan foydalanish imkoniyati yaratiladi.
47.modullar nima?
Modullar JavaScriptda kodni bo'limlash va tuzatishni osonlashtirish uchun ishlatiladigan bir 
konseptdir. Modullar kodni mazmunini funksiyalarga, o'zgaruvchilarga va ob'ektlarga bo'lib 
ajratish imkonini beradi, shuningdek, kodni boshqa fayllar orqali qayta ishlash va ulardan 
foydalanish imkonini yaratadi.
48.Set obyekti nima?
Set obyekti JavaScriptda unikal qiymatlardan iborat ro'yxatni saqlash va 
boshqarish uchun ishlatiladi. Set obyekti elementlarni tartiblashiz va 
takrorlanmasdan saqlab turadi.


49.Callback Function nima?
Callback function JavaScriptda bir funksiya, ikkinchi funksiyaga argument 
sifatida uzatiladi va ikkinchi funksiya boshqa bir operatsiya yoki amalni 
bajarishda birinchi funksiyani chaqiradi. Bunday callback funksiyalar asinxron
kodning, hodisalarning vaqtli ishlovchilarining (event handlers) yaratilishi, 
ma'lumotlarni olish va qaytarish uchun amalga oshirilgan xizmatni bajarish, 
tizim amalga oshirishni boshqarish va boshqalar kabi ko'plab muammolarni 
yechish uchun keng qo'llaniladi.
Callback funksiyalar quyidagi tavsifar bilan belgilanadi:
1. Birinchi funksiya ikkinchi funksiyaga argument sifatida uzatiladi.
2. Ikkinchi funksiya birinchi funksiyani vaqti kelganda chaqiradi.
3. Callback funksiyalar asinxron vaqtli hodisalarning (event handlers) va 
boshqalar kabi ishni bajarish uchun xizmat qiladi.
50.Promises nima?
Promises JavaScriptda asinxron kodni boshqarishning qulay usuli sifatida 
ishlatiladigan obyektlar hisoblanadi. Promislar kelgusidagi natijalarni (result) 
yoki xatolarini (error) qaytarish uchun foydalaniladi. Ularning asosiy maqsadi 
asinxron amallarni soddalashtirish, kodning oxirgi natijasini kutilayotgan 
vaqtcha amalga oshirish, ketma-ketlikdagi amallarni bajarish va boshqalar 
kabi asinxroniya bilan bog'liq muammolarni yechishdir.
Promislar quyidagi tavsifar bilan belgilanadi:
1. Promis biror operatsiya yoki amalning natijasini yoki xatolarini 
qaytarishi uchun vaqtli va asinxron asosda ishlaydi.
2. Promis bajarish jarayoni oxirigacha natija (result) yoki xato (error) 
qaytaramayotgan holda ishlaydi.
3. Promisning holati muayyan bo'lganda natija (result) yoki xato (error) 
bilan yakunlanadi.
4. .then() va .catch() metotlari orqali natijani olish va xatoni qaytarish 
mumkin.
51.
Async/await nima?
Async/await, JavaScript'da asinkron (async) amallarni o'qiluvchan va boshqaruvchi qiladigan til 
imkoniyatidir. Async/await, Promise asosida amallarni oson sintaksis bilan ifodalashga imkon 
beradi.
52.Spread va rest operatorlari orasidagi farq
Spread va rest operatorlari JavaScriptda obyektlar va massivlar bilan 


ishlashni soddalashtiruvchi operatorlardir, lekin ulardagi asosiy farq 
qiymatlarni o'zgartirish tartibidir.
Spread Operator (...): Spread operatori obyekt yoki massivni yechish va 
nusxalashni osonlashtiradi. Bu operator yordamida bir obyektning yoki 
massivning elementlari boshqa obyekt yoki massivga o'tkaziladi.
53.Standart parametrlar(Default Parameters) nima?
Standart parametrlar (Default Parameters) JavaScriptda funksiyalar uchun 
parametrlar uchun o'zgaruvchilarning standart qiymatlarini belgilash 
imkonini beradi. Bu, bir funksiya chaqirilganda belgilanmagan yoki undefned 
sifatida berilgan parametrlar uchun standart qiymatlarni ta'rifashni 
ta'minlayadi.
54. Ob'ektni o'rash (Wrapper Objects) nima?
Ob'ektni o'rash (Wrapper Objects) JavaScriptda mantiqiy qiymatlarni 
(boolean, number, va string) obyekt shaklida boshqarishga imkon beruvchi 
obyektlardir. Bu obyektlar mantiqiy qiymatlarga qo'shimcha funktsionallik 
qo'shadi.
JavaScriptda mantiqiy qiymatlar (boolean, number, va string) aslida primitiv 
qiymatlar deb hisoblanadi, lekin ob'ektlarga o'zgartirishlarni qo'shishga 
imkon berish uchun mantiqiy qiymatlarni obyektlar bilan o'rash mumkin. 
Bunday holatda, mantiqiy qiymatlarni ob'ektga o'rash uchun avtomatik 
ravishda Wrapper Objects ishlatiladi.
Wrapper Objects masalan, Boolean, Number, va String klaslari orqali 
mantiqiy qiymatlarni obyektga o'rash imkonini beradi. Bu obyektlar mantiqiy 
qiymatlarga qo'shimcha xususiyatlar va metodlar (method) qo'shishga imkon 
beradi.
55. Aniq va yashirin konvertatsiya yoki turga o'tkazish (Implicit and Explicit 
Coercion) o'rtasidagi farq nima?
Aniq va yashirin konvertatsiya (Implicit va Explicit Coercion) JavaScriptda 
qiymatlarni bir turdan boshqa turga o'tkazishning iki xil usuli.
1. Aniq (Implicit) konvertatsiya: Aniq konvertatsiya avtomatik ravishda 
amalga oshiriladi. Bu, JavaScriptning avtomatik ravishda qiymatlarni bir
turdan boshqa turga o'tkazish imkonini beradi. Aniq konvertatsiya 
natijasida konvertatsiya amalini amalga oshirish uchun JavaScript 
o'zgaruvchining qiymatini o'zgaruvchini talab etgan turga mos ravishda 
o'zgartiradi.
2. Yashirin (Explicit) konvertatsiya: Yashirin konvertatsiya dastlab 
qiymatni bir turdagi obyektga o'girish va keyin obyektni talab etgan 
turdan boshqa turga o'tkazishdan iborat bo'ladi. Yashirin konvertatsiya 
amalini o'zgaruvchini o'zgaruvchining talab etgan turidagi obyektga 
aylantirish operatorlari yordamida bajariladi.
56. NaN nima? Qiymat NaN ekanligini qanday tekshirish mumkin?
NaN (Not-a-Number) JavaScriptda sonlarni ifodalash uchun ishlatiladigan 
xossadir. NaN qiymati matematikada haqiqiy son emasligini bildiradi. NaN 
qiymati ayni zamonda bir matematik amaliyot natijasida aniqliksiz yoki 
aniqliksiz sonlarni ifodalash uchun ishlatiladi.


NaN qiymatini tekshirish uchun isNaN() funktsiyasidan foydalanishingiz 
mumkin. isNaN() funksiyasi argument sifatida berilgan qiymatni NaN 
ekanligini tekshiradi. Agar berilgan qiymat NaN bo'lsa, true qiymatini 
qaytaradi. Aks holda, false qiymatini qaytaradi.
57.Qiymat massiv ekanligi qanday tekshiriladi?
Qiymatning massiv ekanligini tekshirish uchun Array.isArray() metodidan 
foydalanishingiz mumkin. Array.isArray() metodi berilgan qiymatni massiv 
bo'lishini tekshiradi. Agar qiymat massiv bo'lsa, true qiymatini qaytaradi. Aks 
holda, false qiymatini qaytaradi.
59. Ob'ektda xossa mavjudligi qanday aniqlanadi?
Ob'ektda xossalar mavjudligini aniqlash uchun bir nechta usullar mavjud:
1. in operatori: in operatorini ishlatib, bir ob'ekt ichida berilgan xossani 
tekshirishingiz mumkin. Agar berilgan xoss ob'ektning o'z xossasi yoki 
ota xossalaridan birida mavjud bo'lsa, true qiymatini qaytaradi. Aks 
holda, false qiymatini qaytaradi.
2. hasOwnProperty() metod: hasOwnProperty() metodini ob'ektning o'ziga 
chaqirib, berilgan xossni tekshirishingiz mumkin. Agar xoss ob'ektning o'ziga 
tegishli bo'lsa, true qiymatini qaytaradi. Aks holda, false qiymatini qaytaradi.

Download 103.45 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling