Otázky z pohovoru na JavaScript, které lze očekávat

Autor: Aaron Cao · Aktualizováno

Otázky z pohovoru na JavaScript, které lze očekávat
Očekávejte základy: closures, event loop, this binding, prototypy a scoping pomocí var, let a const. Poté programovací cvičení jako implementace debounce, zploštění array nebo napsání pomocné funkce pro promise, plus témata z browseru jako event delegation. Pohovory na senior pozice přidávají async vzory a výkon.

Očekávejte základy: closures, event loop, this binding, prototypy a scoping pomocí var, let a const. Poté programovací cvičení jako implementace debounce, zploštění array nebo napsání pomocné funkce pro promise, plus témata z browseru jako event delegation. Pohovory na senior pozice přidávají async vzory a výkon.

Na jaké základy JavaScriptu se ptají nejčastěji?

Seznam otázek pro JavaScript působí nekonečně a probírání náhodných otázek je nejpomalejší způsob, jak se jím prokousat. Tato sekce jej zužuje na koncepty, ke kterým se tazatelé vracejí téměř v každém kole, takže vaše cvičení odpovídá skutečnému rozložení. Většinu kol pokrývá pět témat:

  • Closures: co funkce zachytává, klasická chyba s proměnnou v cyklu, a proč fungují module vzory.
  • Event loop: call stack, task queue a microtask queue, a v jakém pořadí se v smíšeném příkladu vypisují logy.
  • this binding: výchozí, implicitní, explicitní pomocí call a apply, a jak se liší arrow function.
  • Prototypy: vyhledávání property podél chain, a na co se zkompiluje syntaxe class.
  • Scoping: var oproti let a const, hoisting, a temporal dead zone.

Koerce rovnosti pomocí == oproti ===, truthiness, a metody array jako map, filter a reduce doplňují úroveň screeningu. Pokud dokážete každý z výše uvedených bodů nahlas vysvětlit za méně než minutu, kolo o základech obstojí.

Jaká programovací cvičení byste měli trénovat?

Kromě konceptuálních otázek zahrnuje většina kol JavaScriptu krátké implementační cvičení prováděné naživo. Opakující se sada je malá a vyplatí se ji trénovat, dokud každé cvičení nezabere minuty, ne několik pokusů:

  • Implementujte debounce a throttle, a řekněte, kdy se který hodí.
  • Zploštěte vnořené array s rekurzí i bez ní.
  • Napište zjednodušenou verzi Promise.all, která udělá reject při prvním selhání.
  • Sestavte malý event emitter s on, off a emit.
  • Proveďte deep clone objektu a uveďte případy, které vaše verze nezachytí.

Front-end kandidát, který se uchází o mid-level pozici, může například dostat debounce jako rozehřátí, a poté je požádán, aby jej napojil na vyhledávací pole a vysvětlil, co se stane s probíhajícími requesty. Doplňující otázka je skutečným testem; tazatelé cvičení rozšiřují, aby zjistili, kde končí váš mentální model jazyka.

Trénování tohoto nahlas proti tazateli, který tlačí dál, je to, díky čemu to utkví; stránka mock interview popisuje, jak vést časově omezené relace s doplňujícími otázkami.

Jak vypadají otázky na browser a async?

Role zaměřené na browser přidávají vrstvu nad jazykové základy. Event delegation je klíčovým bodem: proč jeden listener na parent porazí tisíc na children, jak to umožňuje bubbling, a kdy záleží na capture phase. Batching aktualizací DOM, layout thrash, a co spouští reflow, se objevují v kolech zaměřených na výkon.

Otázky na async konvergovaly ke standardní podobě: úryvek kódu, který kombinuje setTimeout, řetězce promise, a funkce async, kde musíte předpovědět pořadí výstupu. Odpověď závisí na pořadí microtask oproti macrotask, a tazatele zajímá spíše proč než samotná sekvence. Zpracování chyb napříč hranicemi await, promise chaining oproti nesting, a závodění requestů pomocí Promise.race sadu doplňují.

Tím, jak se tato kola liší mezi formáty coding, behavioral a system design, se zabývá rozcestník typů pohovorů.

Jak trénovat, aby se to přeneslo do skutečného kola?

Čtení odpovědí působí produktivně, ale přenáší se tím téměř nic. Kolo je mluvené, časově omezené a interaktivní, takže vaše cvičení musí být stejné. Provádějte zkušební relace, ve kterých nahlas vyprávíte během psaní, jste přerušováni doplňujícími otázkami, a soupeříte s hodinami; právě tento tlak dělá vybavování automatickým. Sady specifické pro danou roli, pro jiné jazyky a stacky, najdete v rozcestníku bank otázek.

Upřímná poznámka: skutečná kola JavaScriptu probíhají obvykle ve sdíleném editoru s viditelnou obrazovkou, a hlídané hodnocení to nahrává. Asistent slouží k přípravě a tréninku mimo tento kontext, ne pro živě sdílenou obrazovku. Tam, kde je živá pomoc legitimní, během nesdílených telefonických screeningů nebo vlastních přípravných relací, zůstává overlay SubcueAI lokální na vašem zařízení a k hovoru se nepřipojuje žádný bot.

Časté dotazy

Jsou pohovory na JavaScript jen úlohy z LeetCode?

Obvykle ne. Objevují se obecné otázky na algoritmy, ale kola specifická pro JavaScript se opírají o mechaniku jazyka, jako jsou closures, event loop a this binding, plus malé praktické implementace jako debounce nebo event emitter.

Na co by se měl junior vývojář zaměřit nejdřív?

Na scoping, closures, metody array, a jasné vysvětlení == oproti ===. Junioři propadají u screeningů kvůli vratkým základům mnohem častěji než kvůli chybějícím pokročilým tématům, jako jsou generator nebo proxy.

Jak jednoduše vysvětlím event loop?

Jednou větou: synchronní kód běží na call stack, dokončené callback čekají ve queue, a po každém běhu stacku engine vyprázdní všechny microtask, jako callback promise, než převezme další macrotask, jako timer. Poté projděte jeden příklad pořadí logů.

Zahrnují pohovory na JavaScript i TypeScript?

Čím dál častěji ano, pokud jej tým používá. Očekávejte otázky na základní typování, union, generics na pracovní úrovni, a na to, co TypeScript za běhu (runtime) garantuje a co ne. Kolo stále rozhodují základy JavaScriptu.

Související otázky

← Více o Otázky k pohovoru podle role a tématu