«!!» operatori nima uchun ishlatiladi?
Download 103.45 Kb. Pdf ko'rish
|
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
ma'muriyatiga murojaat qiling