Kedy budete môcť začať pracovať, ak dostanete ponuku?
Node.js
Aké sú výhody a nevýhody funkcionálneho programovania?
Aký je rozdiel medzi INNER JOIN a LEFT JOIN? Čo sa stane s riadkom z ľavej tabuľky, ak neexistuje zodpovedajúci riadok v pravej tabuľke?
Implementujte jednu alebo obe funkcie v aplikácii: používateľ môže pripínať a odpínať stránky pomocou ikony v zozname; pripnuté stránky by sa mali zobrazovať na vrchu zoznamu. Druhá funkcia je voliteľná podľa vášho uváženia.
Prečo chcete práve teraz zmeniť spoločnosť?
Čo znamená, že tím je idempotentný?
Aký je rozdiel medzi operátorom || a ?? v JavaScript/TypeScript? Čo sa stane, ak je retryLimit nastavený na 0?
Odstrániť komentár app.delete('/comments/:id', requireAuth, async (req, res) => { const comment = await db.comments.findById(req.params.id) if (!comment) { return res.status(404).end() } await db.comments.delete(comment.id) res.status(204).end() }) Stránkovanie zoznamu function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) }
Písali ste niekedy jednotkové testy? Do akej miery?
Odhaľte chybu · TypeScript Záhadné chyby Každý z týchto ôsmich úryvkov sa skompiluje, prejde voľným prehľadom a vyzerá dobre. Každý skrýva chybu. Pre každý: povedzte nám, čo sa pokazí, za akých podmienok — a ako by ste to odhalili. Rozprávajte nahlas. Zaujíma nás, ako čítate kód, nie stopky. Nie je problém, ak neodhalíte všetky. 01 Zadanie objednávky interface Notifier { send(to: string, message: string): Promise<void> } class OrderService { constructor(private readonly notifier: Notifier) {} async placeOrder(order: Order): Promise<OrderId> { const id = await this.repo.save(order) this.notifier.send(order.customerEmail, `Order ${id} confirmed`) return id } } 02 Aktualizácia profilu app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('neúspešná aktualizácia profilu', err) } res.status(200).json({ status: 'uložené' }) }) 03 Vymazanie komentára app.delete('/comments/:id', requireAuth, async (req, res) => { const comment = await db.comments.findById(req.params.id) if (!comment) { return res.status(404).end() } await db.comments.delete(comment.id) res.status(204).end() }) 04 Paginate zoznam function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // volajúci const results = paginate(rows, page, 20) // stránka začína na 1 v UI 05 Načítanie článkov s autormi async function loadArticlesWithAuthors(): Promise<ArticleView[]> { const articles = await db.query('SELECT * FROM articles WHERE published = true') const views: ArticleView[] = [] for (const article of articles) { const author = await db.query('SELECT * FROM users WHERE id = $1', [article.authorId]) views.push({ ...article, author: author[0] }) } return views } 06 Riešenie predvolených konfigurácií interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Anonymný', } } 07 Testovanie pomocnej funkcie zľavy function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('aplikuje zľavu', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 Výpočet najvyšších skóre function topScores(scores: number[], take = 3): number[] { return scores.sort((a, b) => b - a).slice(0, take) } const results = [4, 1, 9, 2] const podium = topScores(results) // ... neskôr, inde: renderRawResults(results) // očakávané [4, 1, 9, 2]