Sobes.tech

Frontend

Kui funktsioon logHello on kirjutatud noolefunktsioonina ja seda kutsutakse läbi fn.call(this, ...args) runOnce sees, mis juhtub selle this kontekstiga? Mida tuleb muuta funktsioonis logHello, et kontekst õigesti edasi antakse?

228

Kirjutage funktsioon, mis teisendab stringi camelCase-st snake_case-ks. Ei tohi kasutada regulaaravaldisi, märkide koode ega kõvasti määratletud sümbolite nimekirju; lahendus peab olema universaalne. Hinnake ajalis- ja ruumiliselt keerukust.

215

Miks, kui kutsutakse kaks korda sleep(2000) ja sleep(1000), kõigepealt kuvatakse log 1 sekundi kohta ja siis 2? Selgitage Event Loop, mikro- ja makroülesannete tööd.

211

Andmedaatabasside ja API-dega töötamise teadmine

203

/** * `asyncAuth(callback)` funktsioon võtab vastu callback-i, kuhu * võib edastada vea (esimene argument) ja andmeid * backendist (teine argument). * asyncAuth((error, data) => {}); * * Teil on vaja rakendada funktsioon `auth()`, * mis kutsub `asyncAuth()` ja tagastab Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` funktsioon kasutab `auth()` ja juhul, kui tekib viga, * teeb N täiendavat katset. * Kui kõik katsed ebaõnnestuvad, tagastab viimase vea. * * @returns {Promise} */ function tryAuth(n) { }

199

/* Meil on komplekt piletitest järgmisel kujul: [ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Saint Petersburg' }, ... ] Nendest piletitest saab ehitada ühe katkematu marsruudi. Marsruudil ei ole silmuseid ega kordusi. Tuleb kirjutada programm, mis tagastab need samad piletite objektid marsruudi järjekorras. */ function getRoute(tickets = [], startCity) { // sinu kood siin } 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' }, ] */

199

/** * Funktsioon 'asyncAuth(callback)' võtab vastu callback, kuhu * võib edastada vea (esimesena argument) ja andmeid * backendist (teise argumendina). * asyncAuth((error, data) => {}); * * Teil tuleb implementeerida funktsioon 'auth()', * mis kutsub 'asyncAuth()' ja tagastab Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Funktsioon 'tryAuth()' kasutab 'auth()' ja juhul, kui tekib viga, * teeb N täiendavat katset. * Kui kõik katsed ebaõnnestuvad, tagastab viimase vea. * * @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); }); }

186

Millele muidu pidite kirjutama oma ärikogemuses, lisaks TypeScript ja JavaScript?

185

Kui meil on vaja arvestada murdarvudega, mida peaksime lisama meetodile times?

181

/* Vajadzētu uzrakstīt polyfill funkcijai Array.prototype.some Parametri - callback - funkcija, kas pārbauda katru elementu, pieņem trīs argumentus: - element - Pašreizējais apstrādātais elements masīvā. - index (Neobligāti) - Pašreizējā apstrādātā elementa indekss. - array (Neobligāti) - Masīvs, uz kura tiek veikta iterācija. - thisArg (Neobligāti) - Vērtība, kas tiek izmantota kā this funkcijas callback izpildes laikā. Atgriežamā vērtība true, ja pārbaudes funkcija atgriež truthy vērtību vismaz vienam masīva elementam. Pretējā gadījumā - 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; }

180

Millises meeskonnas te töötate ja millisel projektil?

174

Kas on võimalik lahendada promise-de lubaduste summamise ülesannet Promise'i staatiliste meetodite kasutamata jätmisega? Kuidas erineb lubaduste täitmine tsüklis Promise.all-st — paralleelselt või järjest?

170

On puu, millel istuvad pähklid ja korvid. On vaja kirjutada funktsioon, mis leiab kõik pähklid puu otsas ja tagastab nende nimed. Oodatav tulemus: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

161

Määrake välja printimise järjekord konsoolis ja mõõdetud aja väärtused näites sleep, timerite, Promise ja ülesannete järjekordadega; selgitage, miks tegelik viivitus võib olla suurem kui määratud.

161

Rakenda callLimit(fn, limit, callback) dekoraatoru, mis piirab funktsiooni kutsumiste arvu. Võtab vastu: funktsiooni dekoreerimiseks, maksimaalse kutsumiste arvu, callbacki, mis kutsutakse viimases kutses (valikuline). Tagastatud funktsioonil peab olema reset meetod, mis lähtestab loendurit algse olekusse.

160

Mis on parem kasutada andmete salvestamiseks võtme järgi: Map või tavaline objekt? Millised on Map eelised?

159

Laiendage Array.prototype meetodiga, mis rühmitab massiivi elemendid võtme järgi, mis arvutatakse antud funktsiooni abil, ja tagastab objekti, kus iga võtme jaoks vastab elementide massiiv. Selgitage, mis juhtub, kui võtme arvutamise funktsioon tagastab midagi, mis ei ole string või number.

155

// Teile antakse string, mis koosneb ladina tähtedest, tühikutest ja kirjavahemärkidest. // Stringi nimetatakse pangrammiks, kui see sisaldab vähemalt korra iga 26 tähe. Määrake, kas string on pangramm. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; function isPangram(text) { // teie kood siin } console.log(isPangram(`A pangram or holoalphabetic sentence is a using every letter of a given alphabet at least once.`)); // => console.log(isPangram('Waltz, bad nymph, for quick jigs vex.'))

153

/** * On vajalik kirjutada asünkroonne funktsioon, * mis "magab" määratud millisekundite arv ning * seejärel edukalt lõpetab */ function sleep(duration) { } // Näide const startTime = Date.now(); console.log("Alustame magamist..."); sleep(2000).then(() => { console.log("Tõusin pärast 2 sekundit!"); console.log("Aeg läks: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Tõusin pärast 1 sekund!"); console.log("Aeg läks: ", Date.now() - startTime); });

153

/** * Teostage runOnce raami funktsiooni, mis võtab vastu * funktsiooni ja tagastab uue funktsiooni. Uus * funktsioon saab kutsuda ainult üks kord, kõik järgnevad * kutsed tagastavad undefined. * * Ümbrise funktsioon võib vastu võtta argumente * ja tagastada tulemuse. */ function runOnce(fn) { // teie kood } const logHello = (name) => { console.log(`tere, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'tere, Oleg!' logHelloOnce('Olga'); // undefined

153
/6