Kada galėsite pradėti dirbti, jei gausite pasiūlymą?
Node.js
Kokios yra funkcionalaus programavimo privalumai ir trūkumai?
Kuo skiriasi INNER JOIN ir LEFT JOIN? Kas nutinka kairės lentelės eilutei, jei dešinės lentelės atitinkamos eilutės nėra?
Įgyvendinkite vieną arba abi funkcijas programėlėje: naudotojas gali pritvirtinti ir atpinti svetaines su piktograma sąraše; pritvirtintos svetainės turėtų būti rodomos sąrašo viršuje. Antra funkcija yra pasirinktinė pagal jūsų nuožiūrą.
Kodėl norite dabar pakeisti įmonę?
Ką reiškia, kai komanda yra idempotentinė?
Kuo skiriasi || ir ?? operatoriai JavaScript/TypeScript? Kas nutiks, jei retryLimit bus nustatytas į 0?
Ištrinti komentarą 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() }) Sąrašo puslapiavimas function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) }
Ar kada nors rašėte vienetinius testus? Iki kokio lygio?
Aptikti klaidą · TypeScript Slaptos klaidos Kiekvienas iš šių aštuonių fragmentų kompiliuojasi, praeina atsitiktinį peržiūrėjimą ir atrodo gerai. Kiekvienas slepia klaidą. Kiekvienam: pasakykite, kas sulūžo, kokiomis sąlygomis — ir kaip tai aptiktumėte. Kalbėkite garsiai. Mus domina, kaip skaitote kodą, o ne laikmatis. Nereikia visko pataikyti. 01 Pateikti užsakymą 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 Atnaujinti profilį app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('profilio atnaujinimas nepavyko', err) } res.status(200).json({ status: 'išsaugota' }) }) 03 Pašalinti komentarą 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 Puslapiavimas function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // kviečiantis const results = paginate(rows, page, 20) // puslapis prasideda nuo 1 UI 05 Straipsnių įkėlimas su autoriais 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 Konfigūracijos numatytųjų reikšmių sprendimas interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Nežinomas', } } 07 Nuolaidos pagalbinės funkcijos testavimas function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('taikoma nuolaida', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 Aukščiausių įvertinimų skaičiavimas 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) // vėliau, kitur: renderRawResults(results) // tikimasi [4, 1, 9, 2]