Общие вопросы по Javascript во время собеседования.

Подготовка к собеседованию может вызывать стресс, и тем более, если вы не чувствуете, что правильно подготовились к дню "Д".

«Не подготовившись, вы готовитесь к провалу». - Бенджамин Франклин

Поскольку Javascript используется как для интерфейса, так и для серверной части, его трудно упустить из виду при приеме на работу, и на многих собеседованиях будут задаваться вопросы по core-js или, по крайней мере, общие.

Вот несколько вопросов, на которые вы должны быть готовы ответить:

В - Что такое JavaScript?

Вы этого не ожидали, правда? Да, этот может подойти. Это маловероятно и слишком много для учености, но может ввести вас по ложному пути, если интервьюер почувствует, что вы понятия не имеете, о чем JS с самого начала разговора.

Возможный ответ. JavaScript - это интерпретируемый язык программирования с объектно-ориентированными возможностями, который позволяет встраивать интерактивность в статические HTML-страницы.

В - Каковы преимущества использования JavaScript?

Это следующий вопрос к первому. Так держать.

Возможный ответ - Это позволяет меньше взаимодействовать с сервером; вы можете проверить вводимые пользователем данные перед отправкой страницы на сервер. Это экономит трафик сервера, что означает меньшую нагрузку на ваш сервер.
- Это позволяет мгновенно получать обратную связь с посетителями; им не нужно ждать, пока перезагрузится вся страница, чтобы увидеть, не забыли ли они что-то ввести.
- Вы можете добавить интерактивность; например, наличие интерфейса, реагирующего на то, что пользователь наводит курсор на элемент.

Теперь о более серьезных вещах.

В - Что такое обратный звонок?

Функции обратного вызова действительно важны в Javascript. JS - это язык, управляемый событиями, и если вы напишете, скажем, functionA (), а затем functionB (), они будут возвращены в таком порядке ... если только функция functionA не займет слишком много времени. Обратный вызов гарантирует, что functionB () запускается только тогда, когда сценарий выполняется с помощью functionA ().
Возможно, сразу не будет смысла, но попробуйте заменить functionA () на puttMyClothesOn () и functionB на goToWork ()…
Получили картину?

Возможный ответ. В JavaScript функции - это первоклассные объекты. Одним из следствий этого факта является то, что функции могут передаваться в качестве аргументов другим функциям, а также могут быть возвращены другими функциями
.
Функция, которая принимает другие функции в качестве аргументов или возвращает функции в качестве результата называется функцией высшего порядка, а функция, которая передается в качестве аргумента, называется функцией обратного вызова. Он называется обратный вызов, потому что в какой-то момент он вызывается обратно функцией высшего порядка.

Майкл Фоллмер очень хорошо объясняет это в своем посте.

Q - Что такое закрытие?

Если вы не получите этот вопрос во время собеседования… ну, это просто невозможно, вы точно получите этот вопрос. Возможно, вы не получите этого на самом первом собеседовании, но в какой-то момент вы это получите.

Замыкания имеют решающее значение, поскольку они позволяют создавать частные переменные. Переменные JavaScript могут принадлежать к локальной или глобальной области.

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

Вы можете использовать глобальную переменную и функцию для увеличения счетчика:

Вам нужен способ предотвратить изменение / изменение счетчика переменных без использования функции add (), но также вам нужно, чтобы счетчик вызывался только один раз, если это необходимо, поэтому на самом деле это не решение для изменения вашей функции с помощью надстроек + = 1.

Решение состоит в том, чтобы использовать укупорку.

Переменной add присваивается значение, возвращаемое функцией с автоматическим запуском. Самозапускающаяся функция запускается только один раз. Он устанавливает счетчик на ноль (0) и возвращает выражение функции.

Таким образом, add становится функцией. «Замечательно» то, что он может получить доступ к счетчику в родительской области.

Это называется закрытием JavaScript. Это позволяет функции иметь «частные» переменные.

Счетчик защищен областью действия анонимной функции и может быть изменен только с помощью функции добавления.

Возможный ответ. Замыкание - это функция, имеющая доступ к родительской области, даже после закрытия родительской функции. Это позволяет защитить переменную от изменения, позволяя скрипту использовать через функцию.

Практика - ваш лучший выбор здесь, поэтому не стесняйтесь обращаться к Google за макетами интервью и учебными пособиями по этому поводу.

Вот отличное видео с YouTube-канала Codementor.io:

Это великолепное видео, и Дэн действительно дает отличный обзор того, как будет выглядеть большинство отборочных интервью. Я не могу не подчеркнуть важность его совета здесь.
Вы всегда должны сообщать о том, что вы делаете, как вы оцениваете ситуацию, пока вы занимаетесь кодированием, упражнениями.

Помните, что интервьюер не ищет здесь человеческого MDN (ознакомьтесь с моей публикацией о ресурсах, если вы не знаете, что такое MDN), а хочет увидеть, как вы думаете, как вы используете свои текущие знания и опыт для решения проблемы. вы никогда не сталкивались с этим, потому что это и есть программирование.

Ваша способность сообщать о том, что вы делаете в настоящее время, также имеет решающее значение для того, чтобы доказать своему интервьюеру, что вы можете сделать несколько шагов назад и критически взглянуть на проблему.

Не стесняйтесь комментировать, если вам понравился этот пост, и дайте мне знать, что вы думаете, или расскажите мне об интервью!

PS: Я буду добавлять вопросы и уточнять этот пост. Я напишу более подробные вопросы и упражнения, которые вам нужно будет решить во время собеседования.

PS2: Я знаю, что должен был опубликовать видео о том, как воспроизвести целевую страницу Facebook, но я все еще жду, когда Amazon доставит мой микрофон. 😎

Это сообщение из моего собственного блога TomTheDev.com, зацените!