Sobes.tech

Егер logHello функциясы стрелка ретінде жазылса және runOnce ішіндегі fn.call(this, ...args) арқылы шақырылса, онда this контексті не болады? logHello функциясында контекст дұрыс берілуі үшін не өзгерту керек?

237

CamelCase форматындағы жолды snake_case-қа айналдыратын функция жазыңыз. Регулярлы өрнектерді, таңба кодтарын немесе қатты кодталған таңба тізімдерін қолданбаңыз; шешім универсалды болуы керек. Уақыт және кеңістік күрделілігін бағалаңыз.

230

Неліктен sleep(2000) және sleep(1000) екі рет шақырылған кезде алдымен 1 секунд туралы лог шығып, содан кейін 2 секунд туралы лог шығады? Event Loop, микро- және макро-таскалардың жұмысын түсіндіріңіз.

219

/* Бізде билеттердің келесі түрі бар: [ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'SPb' }, ... ] Осы билеттерден бір ғана үздіксіз маршрут құрастыруға болады. Маршрутта бұрылыстар мен қайталанулар жоқ. Сізге осы билеттердің объектілерін маршрут бойынша ретімен қайтаратын бағдарлама жазу керек. */ function getRoute(tickets = [], startCity) { // your code here } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'SPb' }, ], 'NY')); /* [ { from: 'NY', to: 'London' }, { from: 'London', to: 'Moscow' }, { from: 'Moscow', to: 'SPb' }, ] */

213

Дерекқорлар туралы және API-мен жұмыс істеу.

210

/** * `asyncAuth(callback)` функциясы callback-ты қабылдайды, * ол қате (бірінші аргумент ретінде) және деректерді * артқы жақтан (екінші аргумент ретінде) бере алады. * asyncAuth((қате, деректер) => {}); * * Сіз `auth()` функциясын жүзеге асыруыңыз керек, * ол `asyncAuth()`-ты шақырады, бірақ Promise-ны қайтарады. * * @returns {Promise} */ function auth() { // asyncAuth((қате, деректер) => {}); } /** * `tryAuth()` функциясы `auth()`-ты пайдаланады және қате болған жағдайда, * N қосымша әрекет жасайды. * Барлық әрекеттер сәтсіз болса, соңғы қатені қайтару керек. * * @returns {Promise} */ function tryAuth(n) { }

202

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

191

TypeScript және JavaScript-тан басқа кәсіби тәжірибеңізде не жаздыңыз?

189

/*** Array.prototype.some үшін полифилл жазу керек Параметрлер - callback - әр элементті тексеру функциясы, үш аргумент қабылдайды: - element - массивтің ағымдағы өңделетін элементі. - index (міндетті емес) - ағымдағы өңделетін элементтің индексі. - array (міндетті емес) - өту жүргізілетін массив. - thisArg (міндетті емес) - callback функциясы орындалғанда this ретінде қолданылатын мән. Қайтарылатын мән Егер тексеру функциясы массивтің кемінде бір элементі үшін truthy мәнін қайтарса, true. Әйтпесе, 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

Егер бөлшек сандарды ескеру керек болса, 'times' әдісіне не қосу керек?

187

Қай командада жұмыс істейсіз және қандай жобаға қатысасыз?

178

Promise-ларды жинақтау тапсырмасын static Promise әдістерін қолданбай шешуге бола ма? Цикл ішіндегі Promise орындау Promise.all-дан — параллель немесе тізбектеп?

177

Ағашта сілеусіндер мен қарғалар отыр. Барлық сілеусіндерді табатын және олардың аттарын қайтаратын функция жазыңыз. Күтілетін нәтиже: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

167

callLimit(fn, limit, callback) декораторын жүзеге асырыңыз, ол функция шақыру санын шектейді. Ол: безендіретін функция, ең көп шақыру саны, соңғы шақыруда шақырылатын колбэк (міндетті емес). Қайтарылатын функцияда есептегішті бастапқы күйге қайтару үшін reset әдісі болуы керек.

164

Кілт бойынша деректерді сақтау үшін не жақсы: Map немесе кәдімгі объект? Map-тың артықшылықтары қандай?

163

Sleep, таймерлер, Promise және тапсырма кезектері бар мысалда консольға шығу тәртібі мен өлшенген уақыт мәндерін анықтаңыз; неге нақты кідіру орнатылған уақыттан ұзақ болуы мүмкін екенін түсіндіріңіз.

162

/** * Асинхронды функция жазу керек, * ол берілген миллисекундтар санында "ұйықтайды", * және содан кейін сәтті аяқталады */ 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); });

159

Компанияда жұмыс істеудегі ұнайтын және ұнамайтын нәрселер қандай?

158

Массив элементтерін кілт бойынша топтастыратын, берілген функциямен есептелетін кілтке сәйкес келетін объектіні қайтаратын Array.prototype кеңейтіңіз, мұнда әр кілтке сәйкес элементтер массиві болады. Кілт есептеу функциясы мән ретінде жол немесе сан емес мәнді қайтарса, не болатынын түсіндіріңіз.

156

// Сізге латын әріптері, бос орындар және тыныс белгілерінен тұратын жол берілді. // Жол панограмм деп аталады, егер ол кемінде бір рет барлық 26 әріпті қамтыса. Жолдың панограмма екенін анықтаңыз. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; function isPangram(text) { // сіздің кодыңыз мұнда } 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.'))

155
/6