Lab
Frontend concepts that keep coming up in interviews, taken apart.
One concept per entry, one list. A plain explanation, real code, a sandbox you can click, and my own conclusions. No framework wars, no 40-minute reads.
all · 14ready · 0under construction · 14
- 01due for reviewunder constructionClient-side cacheWhy does one screen fetch the same data five times, and what does staleTime actually change?
- 02due for reviewunder constructionRe-renders and memoizationWhich components re-render on a click, and does `useMemo` still matter with the Compiler?
- 03due for reviewunder constructionEvent loopIn what order do `setTimeout(0)`, `Promise.then` and the next paint run?
- 04due for reviewunder constructionDebounce vs throttleWhy does autocomplete fire 40 times when the user typed 8 letters?
- 05due for reviewunder constructionClosures and stale state in hooksWhy does the counter inside `setInterval` always show 0?
- 06due for reviewunder constructionAsync concurrency pool200 uploads, the server survives 4 at a time: how, without a library?
- 07due for reviewunder constructionCancellation and race conditionsYou typed "re", then "react": why do you see results for "re"?
- 08due for reviewunder constructionLong tasks and INPWhy does the click react after 400 ms although the code "works"?
- 09due for reviewunder constructionVirtualized lists and infinite scrollHow do you render 100,000 rows without killing the tab?
- 10due for reviewunder constructionEvent emitter and leaksWho is still listening when the component is gone?
- 11due for reviewunder constructionOptimistic updatesHow does a like appear instantly and roll back when the server says no?
- 12due for reviewunder constructionFailure isolation: boundaries and backoffChat dies: why does video keep playing, and why don't you DDoS your own API?
- 13due for reviewunder constructionReactivity graph (signals)Why does a spreadsheet recompute 3 cells while React re-renders the component?
- 14due for reviewunder constructionEvent propagation and delegationOne listener for 1,000 rows: how, and why?
Sources for each entry: the code itself, MDN, framework docs, and the newsletters I read.