Skip to content

Latest commit

 

History

History
209 lines (203 loc) · 19.4 KB

Interview questions - Questions.md

File metadata and controls

209 lines (203 loc) · 19.4 KB

Подборки вопросов-ответов для собеседования разработчика

  • Из личного опыта

    • Замыкания
    • Работа JS-движка - Event Loop, стэк, очередь задач, микро/макро задачи, web API... SetInterval/Promises
    • Асинхронность и однопоточность JS - что это значит и чем обусловлено.
    • Как JS распределяет память, как парсится и выполняется код.
    • Promises, Async/Await, атрибуты async и defer у тега script
    • Передача "по значению" и "по ссылке"
    • Лексическое всплытие
    • Алгоритмическая сложность
    • Теория нормализации данных (применительно к проектированию Redux state)
    • Работа DOM браузера: "дорогие" опреации. Relayout / repaint
    • Работа DOM браузера: "дорогие" опреации чтения (get.computer.style и т.д.)
    • Отслеживание изменений в фреймворке — центральный вопрос для современных фреймворков. Как фреймворк понимает, что что-то изменилось и необходимо применить новые изменения к DOM?
    • Методы жизненного цикла компонента React - не просто заучить, а понимать с какой целью они были добавлены.
    • Основные понятия React.
    • Устройство Redux (store, createStore, state, reducer, actions, action creators, dispatch, provider, connect, middleware, mapDispatchToProps, mapStateToProps)
  • Вопросы на собеседовании React.js

    • JavaScript
      • Какие типы данных существуют в JavaScript?
      • Что такое цикл событий (event loop) и как он работает?
      • Что такое замыкание?
      • Что такое прототип объекта в JavaScript?
      • Как работает ключевое слово this?
      • Как работают методы apply(), call() и bind()?
      • Что такое Promise (Промис)?
    • React
      • Какие методы жизненного цикла компонента существуют в React?
      • Что такое Context в React и для чего он используется?
      • Что такое Виртуальная DOM?
      • Для чего нужен атрибут key при рендере списков?
      • В чем разница между управляемыми (controlled) и не управляемыми (uncontrolled) компонентами?
      • Что такое PureComponent?
      • Что такое Компонент высшего порядка (Higher-Order Component, HOC)?
      • Что такое хуки в React?
      • Что такое порталы в React?
  • Козлова О - React.js + Redux — interview questions

    • Зачем вообще нужен реакт?
    • Что такое виртуальный DOM?
    • Жизненный цикл React компонента?
    • Что такое JSX?
    • Stateless vs Stateful React компоненты?
    • Functional vs Class React компоненты?
    • Smart vs Dumb React компоненты?
    • Отличия props и state?
    • Архитектура Redux
  • Козлова О - JS Interview Questions. Массивы

    • Какие способы создать массив вы знаете?
    • Какие особенности существуют у массивов в JavaScript по сравнению с массивами в других языках программирования — C, C#?
    • Как можно узнать длину массива?
    • Можно ли перезаписать length массива?
    • Как можно перебрать все элементы массива?
    • Какие методы для работы с массивом как со стеком Вы знаете?
    • Что будет в переменной result после исполнения этого кода? (Array.prototype.push.apply(arr, [3, 4]))
    • Какие методы для работы с массивом как с очередью Вы знаете?
    • Какие методы изменения порядка элементов массива Вы знаете?
    • Что будет в переменной result после исполнения этого кода? (array.sort())
    • Каким условиям должна удовлетворять функция-comparator передаваемая методу Array.prototype.sort()?
    • Как преобразовать массив в строку?
    • Метод объединения массивов?
    • Метод создания подмассива из массива?
    • Метод заполнения элементов массива
    • Методы перебора элементов массива
    • Методы поиска элементов в массиве
    • Методы редукции массивов
    • Как проверить, является ли элемент массивом?
    • Какой typeof у массива?
    • Почему не рекомендуется работать с разнотипными и разреженными массивами?
    • Преобразование массивов в другие типы данных
  • Козлова О - JS Interview Questions. Функции

    • Какие способы создать функцию Вы знаете?
    • Какие способы вызвать функцию Вы знаете?
    • Какую функцию можно вызвать как конструктор?
    • Что происходит при вызове функции как конструктора?
    • Что будет в каждой переменной?
    • Что такое самоопределяемая функция? Приведите пример.
    • Как работает bind?
    • Что такое немедленно вызываемые функции? Примеры? Применение?
    • Что такое стрелочные фунцкии? Каковы их особенности?
    • Что такое вложенность функций?
    • Как можно работать с функцией как с объектом?
    • Как передаются аргументы в функцию? По ссылке или по значению?
    • Как получить все аргументы функции, если точное их количество не известно?
    • Каковы особенности работы с объектом arguments?
    • Что такое замыкания?
    • Как можно применять замыкания?
    • Какие проблемы могут вызвать замыкания?
  • Вопросы и ответы на собеседовании по React.js

    • Как заставить компонент React перерендерится?
    • Назовите методы жизненного цикла компонента?
    • Какие методы компонента могут быть вызваны после некоторых изменений состояния?
    • Почему важно использовать key для отображения элементов списка ?
    • Как обрабатывать событие нажатия кнопки в React.js ?
    • Как передать параметр обработчику события или в callback?
    • Что произойдет, если передать функцию в метод setState ?
    • Что такое поднятие состояния вверх по иерархии в React (Lifting State Up)?
    • Как получить значение input?
    • Что такое строгий режим в React.js
    • Что такое порталы(Portals)?
    • В каком методе жизненного цикла нужно сделать HTTP-запрос ?
    • Что такое чистый компонент и когда он должен использоваться ?
    • Как сделать условный рендер в React.js?
    • Как собрать React приложение в production режиме?
    • Где инициализировать состояние компонента?
    • Что представляют собой компоненты высшего порядка в React.js (HOC)?
    • Кода нужно использовать метод getDerivedStateFromProps(props, state)?
    • Что такое PropTypes и как их использовать?
    • Что такое stateless компоненты?
  • Вопросы про React на собеседовании

    • Что происходит, когда вы вызываете setState?
    • Какая разница между Элементом и Компонентом в React?
    • Когда вам использовать Class Component вместо Functional Component?
    • Что за refs в React и в чем их важность?
    • Что за keys в React и чем их важность?
    • Если вы создали в React элемент Twitter как в примере ниже, то как бы он выглядел?
    • В чем разница между controlled и uncontrolled компонентами?
    • В какой момент жизненного цикла вы применяется AJAX запросы и почему?
    • Что делает и почему важен shouldComponentUpdate?
    • Как вы скажете React строить в режиме Production и как это сделать?
    • Опишите, как в React обрабатываются события?
    • В чем разница между createElement и cloneElement?
    • Какой второй аргумент можно передать опционально в setState и какова его цель?
    • Что не так с этим кодом?
  • Топ 15 вопросов о React.JS на собеседовании (другой перевод)

    • Что делает setState?
    • В чем разница между элементом и компонентом React.JS?
    • В каких случаях Class Component лучше, чем Functional Component?
    • Что такое refs и с чем их едят?
    • React key – это…
    • Как бы выглядел приведенный ниже элемент Twitter в React?
    • Разница между компонентами controlled и uncontrolled
    • В каком моменте должны быть AJAX запросы и почему?
    • Что за зверь, этот shouldComponentUpdate?
    • Поговорим с React.JS: режим Production
    • Почему React.Children.map(props.children, () => ), а не props.children.map(() => )?
    • Опишите обработку событий в React.JS
    • В чем разница между cloneElement и createElement?
    • Какой второй аргумент может быть передан в setState?
  • Вопросы на собеседование по React / Redux

    • Что такое React?
    • Что такое Виртуальная DOM?
    • В чем разница между состоянием и свойством?
    • Какие существуют фазы жизненного цикла компонентов React?
    • Как работает React?
    • Что такое потомки?
    • Что такое состояние в React?
    • Что такое контролируемые компоненты?
    • Что такое Flux?
    • Что такое Redux?
    • Как изменяется состояние в Redux?
    • Что такое «хранилище» в Redux?
    • Что такое чистая функция?
    • Как бы вы отключили хранилище Redux, чтобы оно не принимало никаких изменений в состоянии?
  • Пацианский М - Вопросы для собеседования javascript разработчика

    • Основы
      • прицнипы ООП (хороший эффект производит знание трех слов: инкапсуляция, наследование, полиморфизм)
      • типы данных javascript
      • что такое свойство объекта, а что метод
      • написать функцию, add, чтобы вызов add(1)(2) вернул 3 (замыкания)
      • армия функций
      • кофеварка (один раз написать самому, подсматривая в учебник обязательно)
      • знать, что объекты передаются по ссылке
      • как сделать debounce функцию
      • map, filter, reduce
      • XMLHttpRequest и как его отменить, современный вариант fetch
      • promise
    • React
      • Какую проблему решает react?
      • Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен
      • Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента…
      • в каких методах жизненного цикла стоит выполнять xhr запросы? В каких стоит «обновлять state на основе props«?
      • Что будет если вызвать this.setState в render методе компонента?
      • Зачем нужен componenWIllUnmount, приведите пример
      • Контролируемые, не контролируемые компоненты
      • Как организовать роутинг в реакт приложении?
      • Зачем нужны propTypes? Что происходит с ними в production сборке?
      • Как можно удобно «отлаживать» чужой код приложения, написанного на react (намек в сторону React devtools)
    • Redux
      • Какую проблему решает redux?
      • Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое «действие», а что такое «создатель действия»…
      • Что такое редьюсер? Можете написать простой редьюсер без react/redux?
      • Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить «терминами» — асинхронный aciton)
      • Как компоненты приложения получают «пропсы» из «стора»?
      • Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
      • Почему в reducer’ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
      • Что возвращает функция connect (из react-redux)?
    • Общие вопросы (что это и для чего?)
      • package.json
      • Webpack, gulp, и т.д.
      • node.js
      • promise
  • Козлова О - Вопросы из Яндекса

  • Козлова О - Сети в вопросах и ответах. HTTP-протокол. AJAX. JSONP. CORS.COMET.

  • CSSSR - «И так сойдёт!» или главные ошибки кандидатов

  • Популярные задачки

    • Замыкания - например использование var/let в for()
    • Promise & setTimeout/setInterval - что раньше выполнится? Куча разных console.log, в каком порядке будут выводиться
    • Написать свою реализацию функции debounce
    • Предложить разные методы организации кэша для вычисления Фибоначчи (кэш ограничен 20 значениями, а поступить может хоть 10000 - как оптимизировать? часть кэша выделяем под хранение предыдущиз вычисленных значений. Рекурсия - самый дорогой вариант)
    • Теория нормализации данных. Применение для проектирования стэйта. Например: в качестве ответа сервера получаем очень большой неупорядоченный массив - как с ним работать? Решение: дробление по принципу связи. Точно не помню, надо повторять, но вроде идея такая - создаём отдельный массив для одних сущностей (задачи, например) и отдельный для других (пользователи) и устанавливаем между ними связи.


Legmo, 2019