P
prepair.app
Пройти інтерв'ю →
EnglishУкраїнськаРусский
🟨

Senior JavaScriptПитання на співбесіді JavaScript

Senior · 5+ років досвіду

Співбесіда з JavaScript крутиться навколо невеликого набору речей, які мова робить інакше за всі інші: замикання, `this`, прототипи та event loop. Розберіться з ними — і більшість решти питань закриються самі. Нижче ті, що ставлять найчастіше, кожне з еталонною відповіддю. Senior: архітектуру, трейд-офи, менторство та прийняття рішень.

Теми для підготовки

Типи і приведення
Замикання та області видимості
`this` і прототипи
Event loop і асинхронність
Проміси та async/await
DOM, події та браузер

5 питань рівня Senior з відповідями

1

Сторінка смикається під час скролу. Як діагностувати?

Відповідь

Записати профіль продуктивності й подивитися, яка частина кадру вилазить за бюджет: скрипт, стилі та layout, відмальовування чи композиція. Звична причина — довгі задачі, що блокують головний потік, а класична самонанесена — примусовий синхронний layout, коли геометрію читають одразу після запису стилю. Анімувати варто transform і opacity, бо їх можна скомпонувати без layout, довгу роботу — різати на шматки, а справді важкі обчислення виносити у Web Worker.

2

Як ви думаєте про XSS, CSP і same-origin policy?

Відповідь

XSS — це коли недовірений ввід стає виконуваним скриптом, тому захист у контекстному екрануванні виводу і у відмові збирати HTML з рядків: textContent замість innerHTML. CSP — другий шар: він каже браузеру, звідки дозволено виконувати, тож інʼєкції, що просочилася, немає де виконатися. Same-origin policy не дає чужому сайту читати вашу сторінку і відповіді, а CORS — це свідоме послаблення правила сервером, а не засіб захисту клієнта.

3

Коли `Proxy` доречний і чим він платить?

Відповідь

Доречний, коли справді треба перехоплювати операції, які не можна перелічити заздалегідь: системи реактивності, обгортки-валідатори, моки. Платить вартістю на кожному зверненні, ламає частину оптимізацій рушія і ускладнює налагодження, бо обʼєкт перестає поводитися так, як читається у джерелі. Якщо вистачить геттера або звичайної обгортки — це краща відповідь.

4

ES-модулі проти CommonJS — у чому різниця по суті?

Відповідь

ESM статично аналізований: імпорти розвʼязуються до виконання, і саме це робить можливим tree shaking. require у CommonJS — виклик під час виконання, тому бандлер не може надійно довести, що не використовується. ESM ще й асинхронний і має живі привʼязки, тоді як require віддає знімок обʼєкта експортів. Практичний наслідок: гострі кути виникають при їх змішуванні, особливо в Node.

5

Як ви вирішуєте, чи додавати залежність?

Відповідь

Зважуючи, чого вона коштує при постачанні й у підтримці, проти того, чого коштує написати і володіти самому. Розмір бандла важливий, але дорожче інше: поверхня API, від якої ви тепер залежите, шлях оновлення і те, що буде, якщо її покинуть. Дрібну утиліту зазвичай дешевше написати, ніж тягнути; бібліотеку дат, форм чи будь-що повʼязане з коректністю зазвичай дешевше підключити, ніж реалізувати вірно самому.

🦎

Прочитати відповіді недостатньо

На співбесіді ти говориш вголос під тиском. Кем поставить ті самі питання, оцінить кожну відповідь і покаже, що саме підтягнути.

Пройти інтерв'ю Senior JavaScript →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — JavaScript

Junior JavaScriptMiddle JavaScriptУсі питання JavaScript

Інші спеціалізації

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend💎Senior Ruby on Rails🔷Senior C++⚛️Senior React Frontend