Skip to content

Вопросы с реальных интервью на должность фронтенд-разработчика

Notifications You must be signed in to change notification settings

dmitriyrotaenko/js-interview

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

Вопросы для интервью

Все вопросы с реальных интервью, которые я проходил в конце 2019 года. Вакансии были условно на middle (зарплата 3000 USD), но джунирам задают те же самые вопросы. Эта подборка по результам примерно 10 собсеседований, не сложно догадаться, что пересечение по вопросам сильно больше 50%.

Желающим подготовиться к интервью могу предложить занятия: https://sinyakov.com/frontend/

Javascript

1 .В каком порядке выведутся сообщения в консоль?

const intervalId = setInterval(() => {
  console.log('James');
}, 10);

setTimeout(() => {
  const promise = new Promise((resolve) => {
    console.log('Richard');
    resolve('Robert');
  });

  promise
      .then((value) => {
        console.log(value);

        setTimeout(() => {
          console.log('Michael');

          clearInterval(intervalId);
        }, 10);
      });

  console.log('John');
}, 10);
  1. Вопрос про this
function Person(age) {
    this.age = age;

    setInterval(function() {
        this.age++;
    }, 1000);
}

const vasya = new Person(13);

setTimeout(function() {
    console.log(vasya.age); // ???
}, 5000);
  1. Вопрос про прототипы
function Person(name) {
    this.name = name;
}

const juan = new Person('Juan');

Person.prototype = {
    getName: function () {
        return this.name;
    }
};

const pedro = new Person('Pedro');

console.log(pedro.getName());
console.log(juan.getName());
  1. Map, Set, WeakMap, WeakSet

  2. Bind, call, apply — зачем нужны. Реализовать байнд, реализовать кол

  3. Посчитать сумму

sum(1)(2)(3)(4)(5) == 15
4..add(3) === 7
  1. Замыкания
const button = document.querySelector('button');

for (var i = 0; i < 3; i++) {
    button.addEventListener('click', function (e) {
        console.log(i);
    });
}

button.click();

React

  1. setState
  2. keys
  3. Жизненный цикл реакт-компонентов
  4. Аналоги shouldComponentUpdate
  5. Различие между функциональными и классовыми компонентами
  6. Что возвращает метод render
  7. Чем отличаются hoc и hook
  8. Fiber и история реакта

Броузер

  1. Какими способами мы можем добавить картинку
  2. Выставить три дива по горизонтали
  3. Адаптирование графики
  4. Ссылка внутри ссылки
  5. rel: noopener/noreferrer
  6. Специфичность селекторов
  7. Чем поведение скрипта с атрибутом defer отличается от async?
  8. Расскажите всё, что вы знаете о событиях в JS.
  9. Что происходит при вводе адреса сайта

Программирование

  • Напишите функцию, принимающую на вход время (в любом формате) и возвращающую угол между стрелками аналоговых часов.
  • Написать генератор чисел от а до б
  • Заполнить матрицу 10×10 случайными числам от 1 до 100 без повторений
  • FizzBuzz
  • RLE
  • Уникальные значения в массиве
  • flat
  • sort odd numbers in array
  • random hex colour
  • Напишите функцию, принимающую на вход строку и проверяющую, является ли эта строка палиндромом. Приведите несколько вариантов решения.
  • Напишите функцию, принимающую массив произвольных слов и на выходе дающую двумерный массив анаграмм:
['стол', 'барокко', слот', 'кот', 'кошка', 'ток', 'коробка'] →
[['стол', 'слот'], ['кот', 'ток'], ['барокко', 'коробка']]
  • массив из десяти функций: arr[3]() // 3

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

  • HTTP-протокол
  • Cookie
  • Принципы ООП
  • ФП vs процедурное
  • SOLID
  • Event loop
  • MVP
  • REST

About

Вопросы с реальных интервью на должность фронтенд-разработчика

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published