cdROma.me

ENG / RUS

Вопросы, от ответов на которые вам не станет лучше

Эту заметку я создал для того, чтобы записывать в неё вопросы, которые мне (или не мне) задавали на собеседовании (или не собеседовании) по JS.

Тут вы не найдете ответов на эти вопросы (или немного найдете), только вопросы.

И когда вы найдёте ответы на эти вопросы где-то ещё, то вам не станет от этого лучше. Это просто вопросы, ответы на которые кто-то кому-то задает.


React JS / Native


  • Жизненный цикл компонента? В какой метод какие аргументы приходят? Где и как лучше обновлять стейт?
  • Что такое функциональный компонент и PureComponent? В чём разница?
  • Что такое Redux?
  • Что такое сайд-эффекты?
  • Какие бывают миддлвары в Redux?
  • Для чего нужен redux-thunk?
  • На чём построена redux-saga (на генераторах) и для чего она нужна?
  • React Router и redux-router. Что? Зачем? Почему?
  • Для чего нужен второй аргумент в функции setState?
  • С какой версии React пользуешься и какие крупные изменения за это время произошли?
  • Какие ломающие изменения произошли в 16 версии?
  • Что такое Context API и какие в нём произошли изменения?
  • Что такое Flux-архитектура и в чём её отличия с реализацией Redux?
  • React и Vue - что лучше и для каких задач?
  • Redux и MobX - что лучше и для каких задач? Какие ещё есть библиотеки для управления стейта приложения?
  • Server-Side Rendering?
  • Что такое Higher-Ordered Component?
  • Что такое React Native? Зачем оно? В чём отличия от обычного React? (да, именно так мне его и задали)
  • Как отрендерить компонент в указанное время?

Java Script


  • Так что же наконец такое, это замыкание!?
  • Как работает Event Loop? Таски, микротаски, очереди, etc.?
  • Что такое garbage collector в js и как он работает? (нет ссылок - нет объекта, есть ссылка - есть страдание)
  • Что такое делегирование? (когда вешаем обработчик на контейнер и проверяем клик по элементу внутри - ага, всё ещё спрашивают)
  • Что такое LocalStorage и в чём его отличия от Cookie? Как защитить запись в куке, чтобы её не смог прочитать js (флаг HttpOnly)?
  • Что такое WebSocket? Что такое long-polling и в чём их разница? Какие проблемы они решают?
  • ServiceWorker / WebWorker / SharedWorker? Что это? Зачем это? Как это?
  • event.preventDefault() и event.stopPropagation() - зачем и когда?
  • Что интересного в новых proposal и чего ждёшь больше всего?
  • Что такое higher-ordered function? (однажды мне задали дополнительный вопрос - "можно ли в неё передать функцию?" и это был очень странный вопрос!)
  • Что такое Promise? Как отлаживать ошибки?
  • Что такое Async/Await и во что его компилят транспиллеры? И как их отлаживать?
  • Что такое генераторы?
  • Что такое Proxy?
  • TypeScript / Flow? Что это и зачем это?
  • Что такое optimistic rendering? Как бы реализовал?
  • Что такое virtual scroll? Как оно работает?
  • Что такое node.js?
  • Что такое d3? Для чего она нужна?
  • Как работают генераторы?
  • Напиши генератор, который реализует последовательность Фибоначи (лайв кодинг не моё вообще, после собеса подумал и написал)

DOM

  • DOM Events: 3 фазы прохода события ( Фаза погружения (capturing phase) – событие сначала идёт сверху вниз. Фаза цели (target phase) – событие достигло целевого(исходного) элемента. Фаза всплытия (bubbling stage) – событие начинает всплывать.

).

  • Как предотвратить всплытие? (event.stopPropagation(), event.stopImmediatePropagation())

CSS


  • Если дело вообще касается css, то почему-то всё ещё спрашивают про способы "оцентровать блок по центру экрана". В 2к18!
  • Препроцессоры и их плюсы/минусы относительно друг друга (это обычно вопрос про опыт и почему-то про postcss так никто и не спросил)?
  • css-modules / styled-components. Что это? Зачем это? Плюсы-минусы?
  • Какие бывают значения display и есть ли элементы, которые по-умолчанию inline-block (img)?
  • Чем отличается opacity: 0 от opacity: 0.00001?
  • Чем отличается visibility: hidden от display: none?
  • Что такое float? Как обнулить? Из чего состоит .clearfix?
  • В чём разница box-sizing: content-box от border-box?
  • Через какие директивы реализуется респонзив?
  • Какого цвета будет текст если ...

Other Браузер


  • Что такое SVG? Какие есть способы вставить SVG на страницу? SVG-анимации?
  • Что такое canvas и почему он такой быстрый?
  • Какие бывают способы оптимизации приложения? (спрайты, минификация, лейзи-лоад, etc.)
  • Сколько запросов одновременно можно отправить из браузера на определённый домен? Как решают проблему с ограничением? Решает ли её http/2?

Other программирование


  • Какие бывают паттерны? Перечисли какие знаешь и поясни коротко? (обычно говорят про медиатор, фабрику и декоратор)
  • Какие паттерны проектирования знаешь и в чём особенности? (например MVC и MVVM)
  • Что такое чистая функция (pure function)?
  • Какие языки программирования бывают (функциональные/императивные)? В чём суть этих парадигм? К какой парадигме относится JS?
  • Чем компилируемые языки отличаются от интерпретируемых? Какие есть интерпретируемые языки? Где интерпретируется их код?
  • Что такое Rx?
  • Что такое REST и в чём его отличие от RPC? CRUD?
  • Чем отличается GET от POST? Какие ещё виды запросов есть и для чего используются?
  • На каком уровне OSI находятся http / tcp / ping / json / витая пара?
  • Что происходит после запроса из браузера на открытие какой-то страницы?
  • S.O.L.I.D.?
  • Что такое JSON? Что такое XML? Продолжи список (мне вспомнился только YAML)? Можно ли сконвертировать XML в JSON?
  • Что такое protobuf и messagepack? В чём отличие?
  • Что такое микросервисы? Зачем они? Какие проблемы решает микросервисная архитектура?
  • Что такое мутабельность и иммутабельность?

После этого всего в голове остаётся один самый важный вопрос: стал ли я счастливее, узнав ответы на все эти вопросы?

alt text