Sobes.tech

Frontend

Agar logHello funktsiyasi o'q shaklida yozilgan bo'lsa va runOnce ichida fn.call(this, ...args) orqali chaqirilsa, this konteksti nima bo'ladi? logHello funktsiyasida kontekst to'g'ri uzatilishi uchun nima o'zgartirilishi kerak?

236

CamelCase satrini snake_case ga aylantirish uchun funktsiya yozing. Regulyar ifodalar, belgi kodlari yoki qattiq belgilangan belgilar ro'yxati ishlatilmasligi kerak; yechim universal bo'lishi kerak. Vaqt va joy murakkabligini baholang.

229

Nima uchun sleep(2000) va sleep(1000) ikki marta chaqirilganda, avvalo 1 sekundlik log chiqariladi, keyin esa 2 sekundlik? Event Loop, mikro va makro vazifalarining ishlashini tushuntiring.

218

/* Bizda quyidagi shaklda chiptalar to'plami mavjud: [ { from: 'Londonda', to: 'Moskva' }, { from: 'NY', to: 'Londonda' }, { from: 'Moskva', to: 'Sankt-Peterburg' }, ... ] Ushbu chiptalardan yagona, uzluksiz marshrut qurish mumkin. Marshrutda aylana yoki takrorlanishlar yo'q. Ushbu bir xil chiptalar ob'ektlarini marshrut bo'yicha ketma-ketlikda qaytaradigan dastur yozishingiz kerak. */ function getRoute(tickets = [], startCity) { // kodingizni bu yerga yozing } console.clear() console.log(getRoute([ { from: 'Londonda', to: 'Moskva' }, { from: 'NY', to: 'Londonda' }, { from: 'Moskva', to: 'Sankt-Peterburg' }, ], 'NY')); /* [ { from: 'NY', to: 'Londonda' }, { from: 'Londonda', to: 'Moskva' }, { from: 'Moskva', to: 'Sankt-Peterburg' }, ] */

213

Ma'lumotlar bazalari va API bilan ishlash bo'yicha bilim

210

/** * `asyncAuth(callback)` funksiyasi callback qabul qiladi, unda * xato (birinchi argument sifatida) va backenddan ma'lumotlar * (ikkinchi argument sifatida) o'tkazilishi mumkin. * asyncAuth((error, data) => {}); * * Siz `auth()` funksiyasini amalga oshirishingiz kerak, * bu `asyncAuth()`ni chaqiradi, ammo Promise qaytaradi. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` funksiyasi `auth()`dan foydalanadi va xato bo'lsa, * N ta qo'shimcha urinish qiladi. * Agar barcha urinishlar muvaffaqiyatsiz bo'lsa, oxirgi xatoni qaytaradi. * * @returns {Promise} */ function tryAuth(n) { }

202

/** * 'asyncAuth(callback)' функциясы callback кабул кылат, анда * ката (биринчи аргумент) жана серверден алынган маалыматтар * (экинчи аргумент) өткөрүлүшү мүмкүн. * asyncAuth((error, data) => {}); * * 'auth()' функциясын ишке ашырышыңыз керек, * ал 'asyncAuth()' чакырып, бирок Promise кайтарат. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * 'tryAuth()' функциясы 'auth()' колдонуп, ката болсо, * N кошумча аракет кылат. * Бардык аракеттер ийгиликсиз болсо, акыркы катаны кайтарат. * * @returns {Promise} */ function tryAuth(n) { return new Promise((resolve, reject) => { function attempt(attemptsLeft) { auth().then(resolve).catch((error) => { if (attemptsLeft <= 0) { reject(error); } else { attempt(attemptsLeft - 1); } }); } attempt(n); }); }

191

Tijorat tajribangizda TypeScript va JavaScriptdan tashqari nima yozishingiz kerak edi?

189

/* Array.prototype.some uchun polyfill yozish kerak Parametrlar - callback - har bir elementni tekshiradigan funksiya, uchta argument qabul qiladi: - element - Hozirgi ishlov berilayotgan element massivda. - index (İste'molchi) - Hozirgi ishlov berilayotgan elementning indeks raqami. - array (İste'molchi) - O'tkazilayotgan massiv. - thisArg (İste'molchi) - callback funksiyasini bajarishda this sifatida ishlatiladigan qiymat. Qaytish qiymati Agar tekshiruv funksiyasi kamida bitta element uchun truthy qiymat qaytarsa true, aks holda false. */ Array.prototype.some = function (callback, thisArgs) { const array = this; for (let i = 0; i < array.length; i++) { if (!(i in array)) continue; const result = callback.call(thisArgs, array[i], i, array); if (result) return true; } return false; }

187

Agar biz bo'linma sonlarini hisobga olishimiz kerak bo'lsa, times metodiga nima qo'shishimiz kerak?

186

Qaysi jamoada ishlayapsiz va qaysi loyiha ustida?

177

Promise statik metodlarini ishlatmasdan va'dalarni yig'ish vazifasini hal qilish mumkinmi? Tsikldagi va'dalarni bajarish Promise.all bilan qanday farq qiladi — parallel yoki ketma-ket?

176

Daraxtda yong'oqchilar va qora qushlar o'tiradi. Daraxtdagi barcha yong'oqchilarni topadigan va ularning ismlarini qaytaradigan funktsiya yozish kerak. Kutilyotgan natija: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

167

callLimit(fn, limit, callback) dekoratorini amalga oshirish, bu funksiyaning chaqirilishlar sonini cheklaydi. Qabul qiladi: dekoratsiya qilinadigan funksiya, maksimal chaqirilishlar soni, oxirgi chaqirilishda chaqiriladigan callback (ixtiyoriy). Qaytarilgan funksiya reset metodiga ega bo'lishi kerak, bu hisoblagichni boshlang'ich holatiga qaytaradi.

164

Kalitga asoslangan ma'lumotlarni saqlash uchun nima afzal: Map yoki oddiy obyekt? Mapning afzalliklari nima?

163

Sleep, vaqt o'lchovlari, Promise va vazifa navbatlari bilan misolda konsolga chiqarish tartibi va o'lchangan vaqt qiymatlarini aniqlang; haqiqiy kechikish belgilanganidan katta bo'lishi mumkinligini tushuntiring.

162

Kompaniyada ishingizda nima yoqadi va nima yoqmaydi?

158

/** * Belirtilen millisekund davomida "uyqu" qilish va keyin muvaffaqiyatli yakunlanadigan * asinxron funktsiya yozish kerak */ function sleep(duration) { } // Misol const startTime = Date.now(); console.log("Uyqu boshlanmoqda..."); sleep(2000).then(() => { console.log("2 sekunddan keyin uyg'ondi!"); console.log("O'tgan vaqt: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("1 sekunddan keyin uyg'ondi!"); console.log("O'tgan vaqt: ", Date.now() - startTime); });

158

Array.prototype ni kengaytiring, u elementlarni kalit bo'yicha guruhlash uchun o'tkazilgan funktsiya yordamida hisoblangan kalitga asoslangan metod bilan va har bir kalitga mos keladigan elementlar massivini qaytaradigan ob'ekt. Kalit hisoblash funktsiyasi string yoki raqam bo'lmagan narsani qaytaradigan bo'lsa, nima bo'lishini tushuntiring.

156

/** * runOnce nomli o'ram funksiyasini amalga oshiring, bu * funksiyani qabul qiladi va yangi funksiyani qaytaradi. Yangi * funksiya faqat bir marta chaqirilishi mumkin, barcha keyingi * chaqiruvlar undefined qaytaradi. * * O'ralgan funksiya argumentlarni qabul qilishi * va natijani qaytarishi mumkin. */ function runOnce(fn) { // sizning kodingiz } const logHello = (name) => { console.log(`salom, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'salom, Oleg!' logHelloOnce('Olga'); // undefined

155
/6