Sobes.tech

Frontend

Jei funkcija logHello yra parašyta kaip rodyklės funkcija ir yra iškviečiama per fn.call(this, ...args) viduje runOnce, kas nutiks su this kontekstu? Ką reikia pakeisti logHello funkcijoje, kad kontekstas būtų teisingai perduotas?

239

Parašykite funkciją, kuri konvertuoja stringą iš camelCase į snake_case. Nenaudokite reguliariųjų išraiškų, simbolių kodų ar griežtai nustatyto simbolių sąrašo; sprendimas turi būti universali. Įvertinkite laiko ir erdvės sudėtingumą.

231

Kodėl, kai du kartus iškviečiami sleep(2000) ir sleep(1000), pirmiausia rodomas 1 sekundės logas, o tada 2? Paaiškinkite Event Loop, mikro- ir makro-užduočių veikimą.

220

/* Mūsų turime bilietų rinkinį tokia forma: [ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Saint Petersburg' }, ... ] Iš šių bilietų galima sukurti vieną, nenutrūkstamą maršrutą. Maršrute nėra kilpų ar pasikartojimų. Reikia parašyti programą, kuri grąžina tuos pačius bilietų objektus pagal maršruto seką. */ function getRoute(tickets = [], startCity) { // jūsų kodas čia } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Saint Petersburg' }, ], 'NY')); /* [ { from: 'NY', to: 'London' }, { from: 'London', to: 'Moscow' }, { from: 'Moscow', to: 'Saint Petersburg' }, ] */

215

Žinios apie duomenų bazes ir darbą su API

212

/** * `asyncAuth(callback)` funkcija priima callback, į kurį * gali būti perduota klaida (pirmas argumentas) ir duomenys * iš backend'o (antras argumentas). * asyncAuth((error, data) => {}); * * Jums reikia įgyvendinti `auth()` funkciją, * kuri kviečia `asyncAuth()`, bet grąžina Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` funkcija naudoja `auth()` ir, jei įvyksta klaida, * atlieka N papildomų bandymų. * Jei visi nepavyksta, grąžina paskutinę klaidą. * * @returns {Promise} */ function tryAuth(n) { }

203

/** * Funkcija 'asyncAuth(callback)' priima callback, u koji * može biti proslijeđena pogreška (kao prvi argument) i podaci * s backend-a (kao drugi argument). * asyncAuth((error, data) => {}); * * Morate implementirati funkciju 'auth()', * koja poziva 'asyncAuth()', ali vraća Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Funkcija 'tryAuth()' koristi 'auth()' i, u slučaju pogreške, * čini N dodatnih pokušaja. * Ako svi ne uspiju, vraća posljednju pogrešku. * * @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); }); }

192

Ant ko ko darėte dar rašyti savo komercinėje patirtyje, išskyrus TypeScript ir JavaScript?

191

/* Reikia parašyti polyfill funkcijai Array.prototype.some Parametrai - callback - funkcija, tikrinanti kiekvieną elementą, priima tris argumentus: - element - Dabartinis apdorojamas elementas masyve. - index (Pasirinktinai) - Dabartinio apdorojamo elemento indeksas. - array (Pasirinktinai) - Masyvas, kuriame vykdoma iteracija. - thisArg (Pasirinktinai) - Reikšmė, naudojama kaip this funkcijos callback vykdymo metu. Grąžinimo reikšmė true, jei tikrinimo funkcija grąžina truthy reikšmę bent vienam masyvo elementui. Kitaip - 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; }

188

Jei turime atsižvelgti į trupmeninius skaičius, ką reikėtų pridėti prie metodo times?

188

Kokiame komandoje dirbate ir prie kokio projekto?

181

Ar įmanoma išspręsti pažadų sumavimo užduotį nesinaudojant statinėmis Promise metodais? Kuo skirsis pažadų vykdymas cikle nuo Promise.all — paraleliai ar seka?

177

Yra medis, kuriyə siçanlar və qarqalar otururlar. Lazımdır yazmaq bir funksiya, hansı tapır bütün siçanlar ağacda və geri qaytarır onların adlarını. Gözlənilən nəticə: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

169

Kas yra geriau naudoti duomenims saugoti pagal raktą: Map ar įprastas objektas? Kokios yra Map privalumai?

167

Nustatykite išvesties tvarką konsolėje ir matuoto laiko reikšmes pavyzdyje su sleep, laikmačiais, Promise ir užduočių eilėmis; paaiškinkite, kodėl faktinis vėlavimas gali būti didesnis nei nustatytas.

166

/** * Įgyvendinkite runOnce pakuotės funkciją, kuri priima * funkciją ir grąžina naują funkciją. Nauja * funkcija gali būti iškviesta tik vieną kartą, visi vėlesni * iškvietimai grąžina undefined. * * Apvyniojama funkcija gali priimti argumentus * ir grąžinti rezultatą. */ function runOnce(fn) { // jūsų kodas } const logHello = (name) => { console.log(`labas, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'labas, Oleg!' logHelloOnce('Olga'); // undefined

164

Įgyvendinkite callLimit(fn, limit, callback) dekoratorių, kuris riboja funkcijos iškvietimų skaičių. Priima: funkciją dekoravimui, maksimalų iškvietimų skaičių, callback, kuris kviečiamas paskutiniame iškvietime (neprivaloma). Grąžinta funkcija turi turėti reset metodą, kuris atstatytų skaitiklį į pradinę būseną.

164

/** * Reikia parašyti asinchroninę funkciją, * kuri "miegos" nurodytą milisekundžių kiekį, * ir tada sėkmingai užbaigs darbą */ function sleep(duration) { } // Pavyzdys const startTime = Date.now(); console.log("Pradedame miegoti..."); sleep(2000).then(() => { console.log("Prabudau po 2 sekundžių!"); console.log("Praėjęs laikas: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Prabudau po 1 sekundės!"); console.log("Praėjęs laikas: ", Date.now() - startTime); });

160

Kas jums patinka ir kas nepatinka jūsų darbe įmonėje?

159

// Reikia įgyvendinti groupBy metodą, kuris išplečia standartinius masyvų metodus. // Šis metodas turėtų grąžinti grupuotą masyvo versiją - objektą, // kuriame kiekvienas raktas yra funkcijos fn(arr[i]) vykdymo rezultatas, // o kiekviena reikšmė yra masyvas, kuriame yra visi pradinio masyvo elementai su šiuo raktu. // čia rašykite kodą // Pavyzdys 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id : 1 }], // 2: [{ id: 2 }] // } // Pavyzdys 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Pavyzdys 3 const array3 = [3.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 3: [3.3], // 1: [0.5, 1.4] // }

157
/6