JavaScript считается отлично подходящим языком для начинающих. Отчасти из-за того, что он массово используется для веб-разработки, а отчасти из-за особенностей языка, с помощью которого выполняется даже несовершенный код. Он не строг, как другие языки: он допускает пропуск точек с запятой или нежелание беспокоиться об управлении памятью.
Работа разработчика сложна и интересна. Пройти собеседование иногда может быть так же легко, как пройти через открытую дверь. А в то же время это может быть очень трудно, если вы получаете сложные задачи. Невозможно заранее предугадать.
Я собрала тридцать вопросов, на которые, как мне кажется, лучше подготовить ответ, прежде чем идти на собеседование на должность JavaScript-разработчика.
Общие вопросы для интервью
Интервьюер задает эти вопросы, чтобы лучше узнать вас, узнать насколько хорошо вы впишетесь в команду компании.
Ответы на эти вопросы должны быть относительно краткими, так как они не имеют большого веса.
Вам не нужно давать ответ сразу: делайте паузы, чтобы хорошо обдумать вопрос. Эти вопросы, по идее, должны заставить вас “открыться”, чтобы интервьюер увидел вашу личность.
- Что вам нравится в программировании? Что именно вас интересует в этом процессе?
- Расскажите нам о своей любимой среде разработки. Какую операционную систему, IDE, терминал вы используете? Почему вы выбрали именно их?
- Если бы вы могли освоить только одну технологию в этом году, что бы вы выбрали? Как именно вы будете работать над приобретением этого навыка?
- Какие ресурсы и инструменты вы используете и какие форумы посещаете, чтобы узнать о последних тенденциях в разработке и дизайне интерфейсов? Есть ли у вас какие-то фавориты среди ресурсов, чем они вам нравятся?
- Можете ли вы описать свой рабочий процесс при создании веб-страницы? Каковы ваши первые 5 шагов при создании нового проекта?
- С какими техническими трудностями вы столкнулись в последнее время и как вы решили эту проблему?
Какие шаги вы предприняли в своем последнем проекте, чтобы повысить управляемость вашего кода? - Существуют ли какие-то конкретные парадигмы программирования, которые вы предпочитаете? Может быть, функциональное программирование или разработка на основе тестов?
Технические вопросы
После введения и общих вопросов следуют технические. Эти вопросы будут больше сосредоточены на разработке frontend, но могут также включать вопросы о backend, devops и решении проблем.
- Какие системы контроля версий вы знаете? Как вы делитесь кодом между проектами?
- Назовите 4 способа сократить время загрузки страницы.
- Что означает аббревиатура CORS? Для решения каких задач используется CORS?
- Объясните, что такое ARIA и программы чтения с экрана. Расскажите, как сделать сайт доступным.
Что делает doctype? - Объясните разницу между localStorage, cookies и sessionStorage.
- Что следует учитывать с осторожностью, проектируя или разрабатывая для многоязычных сайтов? Как обслуживать страницу с контентом на разных языках?
- Что такое прогрессивный рендеринг?
- Объясните, как это работает в JavaScript? Как это работает в классах и как это работает в функциях?
- Объясните разницу между:
функция Animal() {}
var animal = Animal()
var animal = new animal() - В чем разница между собственными объектами и объектами хоста? Каков типичный случай использования анонимных функций?
- Объясните, как работает прототипное наследование в JavaScript.
- В чем разница между null и undefined?
- В чем разница между == и ===?
- Что такое Webpack? Какие проблемы она решает?
- Вы когда-нибудь использовали фреймворк или библиотеку frontend?
- Что такое глобальные переменные? Как объявляются эти переменные и какие проблемы связаны с их использованием?
- Для чего используется ключевое слово “new”?
- Какие приемы работы с асинхронным кодом в JS Вы знаете?
- В чем разница между обычной функцией и функциональным выражением?
- В чем разница между методами Object.freeze и Object.seal?
- В чем разница между оператором «in» и методом hasOwnProperty?
- Почему typeof null возвращает object? Как проверить, является ли значение null?
- Что такое NaN? Как проверить, является ли значение NaN?
Заключение
В целом, мы надеемся, что эти вопросы помогли вам лучше понять, чего ожидать от интервью JavaScript. И не забудьте просмотреть эти вопросы перед собеседованием, это поможет вам лучше подготовиться к следующему.