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

от автора

Неделя собеседований на Хабре прошла, но я решил добить ещё живого уважаемого читателя статьёй, в которой поделюсь некоторыми заданиями, которые мне давали на собеседованиях работодатели в течение последнего месяца (среди них — Яндекс, 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), а в некоторых — вообще чёрт знает что (не буду называть компании, к тому же, они малоизвестны).

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

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

ссылка на оригинал статьи http://habrahabr.ru/post/185042/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *