Вопросы для собеседования по JavaScript - от начального до среднего уровня

Пролог

Несколько дней назад я связался со старшим инженером-программистом, который также является выпускником учебного лагеря. Он был достаточно любезен, чтобы предложить имитационные интервью с недавними выпускниками учебного лагеря LinkedIn. Вопросы, которые он задавал, часто встречались в его интервью и его коллегах.

Я, конечно, очень нервничал по поводу собеседования, так как большую часть своего времени я тратил на поиск работы в сети и изучение структур данных и алгоритмов и не обновлял свои знания ванильного JavaScript. К счастью, тестовое интервью прошло лучше, чем я думал, поскольку я смог ответить на ~ 75% вопросов. Тем не менее, по моему мнению, я должен быть более кратким в своих ответах и ​​использовать больше технических терминов. Поэтому я решил использовать эту статью в качестве напоминания, а мой обучающий инструмент - как направление, чтобы отвечать правильными ключевыми словами на каждый вопрос :)

Вопросы и ответы

1. Какие бывают примитивные типы данных?

string, number, bigint, boolean, undefined, symbol и null

2. в чем разница между undefined и null?

null - присвоенное значение, а undefined означает, что переменная была объявлена, но не имеет значения.

Примечание: я написал блог о null и undefined некоторое время назад с бонусным разделом новой функции ES2021, посмотрите, если интересно!

3. в чем разница между undefined, null и undeclared?

В верхней части приведенного выше ответа undeclared означает, что переменная была объявлена ​​без var / let / const.

🏁 + 🚗 + ⛽️

4. Есть несколько способов объявить переменную, можете ли вы их назвать?

var / let / const

5. В чем разница между var , let и const ?

  • var: с глобальным охватом; может быть переназначено, повторно объявлено, обновлено; получит undefined с "подъемом"
  • let: с локальной (функцией / блоком) областью нельзя переназначить и повторно объявить, но можно быть обновленным; получит Reference Error с «подъемом»
  • const: с локальной (функцией / блоком) областью действия нельзя переназначить, повторно объявить и обновить; получит Reference Error с «Подъем»

Я также написал блог, в котором обсуждалась разница между всеми тремя из них. Не стесняйтесь проверить это, если интересно!

🐀 + 🍅 + 🧑‍🍳

6. Можете ли вы описать, что означает «подъем»?

Подъем - это стандартное поведение JavaScript, заключающееся в перемещении объявлений вверх. (Определение W3Schools)

💪 + 💥 + 👓

7. Что такое функция обратного вызова?

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

📖 + 🤠 + 🧑‍🚀

8. Каковы способы обработки асинхронного поведения?

Promises , async , await

Руководство от MDN: Асинхронный JavaScript

🔎 + 🐠 + 🦭

9. В чем разница между ==и ===?

==: проверяет значение на равенство и выполняет приведение типов (т. Е. Преобразует типы переменных в соответствие друг другу) перед проверкой значений.

===: не выполняет приведение типов; оценить, имеют ли сравниваемые переменные одинаковое значение И один и тот же тип

3 == "3" // true
3 === "3" // false

Ресурс: Знак тройного равенства в JavaScript и знак двойного равенства - операторы сравнения, объясненные с примерами (FreeCodeCamp)

🚪 + 😱 + 💡

10. Что такое DOM?

Объектная модель документа (DOM) - это программный интерфейс для документов HTML и XML. Он представляет собой страницу, так что программы могут изменять структуру, стиль и содержимое документа. DOM представляет документ как узлы и объекты (MDN).

11. Какими способами можно получить элемент HTML из модели DOM?

  • Получает ID: getElementbyId(). Пример: getElementbyId(#inspiration)
  • Получает класс: getElementsByClassName(). Пример: getElementsByClassName(.container)
  • Получает тег: getElementsByTagName(). Пример: getElementsByTagName('div')
  • Получает селектор (одиночный): querySelector()
  • Получает селектор (все): querySelectorAll()

12. Какова структура возврата document.querySelectorAll ?

Это возвращает статический (не активный) NodeList, представляющий список элементов документа, которые соответствуют указанной группе селекторов (MDN).

Вывод

Конечно, было несколько вопросов, которые полностью застали меня врасплох. Однако фиктивный интервьюер был очень терпелив со мной и все мне объяснил. Я настоятельно рекомендую провести хотя бы 1 или 2 фиктивных собеседования со своими сверстниками или с кем-то из ваших знакомых, кто готов помочь! Удачи с интервью !!

Кроме того, если вы не заметили эти смайлы, я надеюсь, вы сможете угадать, какие фильмы они представляют по пути - и да, это все фильмы Pixar:

  1. 🏁 + 🚗 + ⛽️ = Машины
  2. 🐀 + 🍅 + 🧑‍🍳 = Рататуй
  3. 💪 + 💥 + 👓 = Суперсемейка
  4. 📖 + 🤠 + 🧑‍🚀 = История игрушек
  5. 🔎 + 🐠 + 🦭 = В поисках Дори
  6. 🚪 + 😱 + 💡 = Корпорация монстров.

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