10 заданий на собеседованиях Frontend-Junior’у

в 12:51, , рубрики: human resources, javascript, вопросы на собеседовании, метки: ,

Неделя собеседований на Хабре прошла, но я решил добить ещё живого уважаемого читателя статьёй, в которой поделюсь некоторыми заданиями, которые мне давали на собеседованиях работодатели в течение последнего месяца (среди них — Яндекс, Topface, ITMozg, парочка весьма интересных и пара довольно мутных стартапов).

Разумеется, у вас не получится успешно пройти собеседование, просто заучив ответы на эти вопросы. Ответ на каждый вопрос будет необходимо пояснить, иногда — очень подробно. Многие вопросы будут ещё дополнены собеседующими. Я прошу рассматривать эти вопросы как некоторую «планку», которой необходимо самостоятельно достичь, чтобы стать Junior'ом в хорошей компании.

Собственно, сами задания

1

Представьте, что у нас есть квадратное поле-сетка, по которому ходит бродяга.
Напишите объект «Бродяга», содержащий его координаты и четыре метода, реализующих шаг бродяги вверх, вниз, вправо и влево.
Как реализовать в таком объекте цепочку вида:

vagabond.goUp().goLeft().goDown().goDown().goRight();
2

Имеется массив произвольной длины, заполненный случайными значениями:

var list = [34, 1, 529, -78, 89.7, 1243];

необходимо найти значение максимального элемента.

3

Необходимо отправить на сервер набор данных без перезагрузки страницы. Перечислите способы сделать это, назовите самый кроссбраузерный.

4

В чем разница между уткой == и ===?

5

Что такое Local Storage, Cookies и Session Storage? В чем разница между ними?

6
@media only screen and (max-width: 1200px) {
}

Что это за конструкция? Зачем она может понадобиться?

7

Чем в Git отличаются merge и rebase?

8

Дано:

var a = new F();
var b = new F();

alert(a == b);

function F() {}

Сделать так, чтобы a == b возвращало true.

9

Напишите результаты выполнения операций:

"1" + 2;
1 + "2";
null == undefined;
null == 0;
null >  0;
null >= 0;
"a" > "A";
10

Дано:

var list = [1, 2, 3, 4, 5, 6];

function sum() {
var sum = 0;
 for (i=0; i<arguments.length; i++) {
  sum += arguments[i];
 }
}

Подсчитать с помощью функции sum сумму элементов list.

11

Представьте большую и сложную страницу, которая очень медленно загружается. Допустим, на ней плохо всё. Ваша задача — оптимизировать время загрузки. Ваши действия?

Заключение

Практически все задания нужно было выполнить устно или в старой доброй IDE «Paper & Pencil». Безбажного кода никто не требовал. Тех, что поадекватнее, в первую очередь, интересовал ход мысли, а не знание тонкостей технологии. Но, естественно, уровень знаний HTML, JS и CSS тоже имеет значение (а вы как хотели). Собеседования в некоторых случаях больше напоминают экзамен с хорошими преподавателями (так было в ITMozg и в Topface), в некоторых — приятную дружескую беседу с чаепитием (Яндекс, Radario), а в некоторых — вообще чёрт знает что (не буду называть компании, к тому же, они малоизвестны).

Если кому-нибудь из читателей после прочтения придёт в голову мысль «Оказывается, на собеседованиях даже в самые крутые компании бояться нечего. Работа в Яндексе и Топфэйсе — это вполне досягаемо», значит, я писал это не зря.

Спасибо за внимание. Всем удачи.

Автор: oshibka404

Источник

  1. Андрей:

    Надо же, третий месяц интенсивно изучаю веб с нуля и уже могу ответить на 9/11 вопросов :)

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js