Sobes.tech

Frontend

Ako je funkcija logHello napisana kao strelica i se poziva putem fn.call(this, ...args) unutar runOnce, šta će se desiti sa kontekstom this? Šta treba izmeniti u funkciji logHello da bi se kontekst ispravno prosledio?

229

Napišite funkciju za pretvaranje niza iz camelCase u snake_case. Ne sme se koristiti regularni izrazi, kodovi karaktera ili čvrsto definisana lista simbola; rešenje mora biti univerzalno. Procijenite vremensku i prostornu složenost.

216

Zašto kada se pozivaju sleep(2000) i sleep(1000), prvo se prikazuje log za 1 sekundu, a zatim za 2? Objasnite rad Event Loop-a, mikro i makro zadataka.

212

Знање база података и рад са API-јима

204

/* Imamo skup karata u sledećem formatu: [ { from: 'London', to: 'Moskva' }, { from: 'NY', to: 'London' }, { from: 'Moskva', to: 'Sankt Peterburg' }, ... ] Iz ovih karata može se napraviti jedinstvena, neprekinuta ruta. Na ruti nema petlji ili ponavljanja. Potrebno je napisati program koji vraća iste te objekte karata u redosledu po ruti. */ function getRoute(tickets = [], startCity) { // vaš kod ovde } console.clear() console.log(getRoute([ { from: 'London', to: 'Moskva' }, { from: 'NY', to: 'London' }, { from: 'Moskva', to: 'Sankt Peterburg' }, ], 'NY')); /* [ { from: 'NY', to: 'London' }, { from: 'London', to: 'Moskva' }, { from: 'Moskva', to: 'Sankt Peterburg' }, ] */

202

/** * Funkcija `asyncAuth(callback)` prihvata callback, u koji * može biti prosleđena greška (kao prvi argument) i podaci * sa backend-a (kao drugi argument). * asyncAuth((error, data) => {}); * * Potrebno je implementirati funkciju `auth()`, * koja poziva `asyncAuth()`, ali vraća Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * Funkcija `tryAuth()` koristi `auth()` i, u slučaju greške, * pravi N dodatnih pokušaja. * Ako svi ne uspeju, vraća poslednju grešku. * * @returns {Promise} */ function tryAuth(n) { }

199

/** * Funkcija 'asyncAuth(callback)' prihvata callback, u koji * može biti prosleđena greška (kao prvi argument) i podaci * sa 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 greške, * pravi N dodatnih pokušaja. * Ako svi ne uspeju, vraća poslednju greš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); }); }

186

На чему још сте морали да пишете у вашем пословном искуству, поред TypeScript и JavaScript?

186

Šta treba dodati u metodu times ako treba uzeti u obzir razlomke?

181

/* Потребно је написати polyfill за Array.prototype.some Параметри - callback - функција која проверава сваки елемент, прихвата три аргумента: - element - Текущий обрађени елемент у низу. - index (Опционо) - Индекс тренутног обрађеног елемента. - array (Опционо) - Низ на којем се врши итерација. - thisArg (Опционо) - Вредност која се користи као this приликом извршавања callback функције. Враћена вредност true, ако функција провере врати вредност truthy за бар један елемент у низу. У супротном, 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

У коме тиму радите и на ком пројекту?

174

Da li je moguće rešiti zadatak sabiranja promise-ova bez korišćenja statičkih metoda Promise? Čime će se razlikovati izvršavanje promise-ova unutar petlje od Promise.all — paralelno ili sekvencijalno?

170

Na stablu sede vjeverice i vrane. Potrebno je napisati funkciju koja pronalazi sve vjeverice na stablu i vraća njihova imena. Očekivani rezultat: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

161

Implementirati dekorator callLimit(fn, limit, callback), koji ograničava broj poziva funkciji. Prima: funkciju za dekorisanje, maksimalan broj poziva, callback, koji se poziva pri poslednjem pozivu (opciono). Vraćena funkcija treba da ima metodu reset za resetovanje brojača na početno stanje.

161

Odredite red izlaza u konzolu i vrednosti izmerenog vremena u primeru sa sleep, tajmerima, Promise i redovima zadataka; objasnite zašto stvarno kašnjenje može biti veće od postavljenog.

161

Шта је пожељније за чување података по кључу: Map или обичан објекат? Које су предности Map?

159

Proširite Array.prototype metodom koja grupiše elemente niza po ključu izračunatom pomoću prosleđene funkcije, i vraća objekat gde svakom ključu odgovara niz elemenata. Objasnite šta će se desiti ako funkcija za računanje ključa vrati nešto što nije string ili broj.

155

/** * Неопходно је написати асинхрону функцију, * која ће "спавати" задати број милисекунди, * а затим успешно завршити */ function sleep(duration) { } // Пример const startTime = Date.now(); console.log("Почетак спавања..."); sleep(2000).then(() => { console.log("Пробудио се после 2 секунде!"); console.log("Прошао време: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Пробудио се после 1 секунде!"); console.log("Прошао време: ", Date.now() - startTime); });

154

// Dobijate niz sastavljen od latiničnih slova, razmaka i interpunkcijskih znakova. // Niz se naziva pangram ako sadrži bar jednom svako od 26 slova. Odredite da li je niz pangram. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; function isPangram(text) { // vaš kod ovde } 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

/** * Implementirajte funkciju runOnce, koja prihvata * funkciju i vraća novu funkciju. Nova funkcija * može biti pozvana samo jednom, svi sledeći * pozivi vraćaju undefined. * * Uključena funkcija može prihvatiti argumente * i vratiti rezultat. */ function runOnce(fn) { // vaš kod } const logHello = (name) => { console.log(`zdravo, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'zdravo, Oleg!' logHelloOnce('Olga'); // undefined

153
/6