01 февраля 2022

☕ 10 вопросов с собеседований по JavaScript

Мобильный разработчик с 9 летним стажем.
В этой статье мы рассмотрим 10 вопросов с собеседований по JavaScript и примеры ответов на них, которые помогут вам подготовиться к интервью.
9
☕ 10 вопросов с собеседований по JavaScript
Это перевод статьи, автор Indeed Editorial Team.

1. Объясните стрелочные функции

Ответ: Стрелочная функция – это краткий способ записи функциональных выражений.

Стрелочные функции не являются конструкторами, не поддерживают ключевые слова this, arguments, super и new.target и записываются следующим образом:

        const hello = () => { 
	console.log(‘good morning’);
}

hello();

    

2. Объясните NaN и его роль

Когда интервьюер просит дать определение термину, этот термин, как правило, является широко используемым. В этом случае, термин NaN, который означает «не число» – важная концепция, понимание которой, потребуется разработчикам на JavaScript при работе с числовыми значениями.

Ответ: Когда значение в операции не число, оно возвращает NaN. Это может произойти в нескольких случаях. Например, если операция возвращает неподходящий результат, потому что часть функции была нечисловой или результат имеет значение, не являющееся числовым.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера»

3. Что такое примитивные типы данных в JavaScript?

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

Ответ: Фундаментальный тип данных, который не может быть создан от других типов данных. Он ограничен представлением одного значения. Все примитивы неизменяемы (immutable), не являются объектом и не имеют методов. По определению, все примитивы – встроенные типы данных, и компилятор должен знать их. Но не все встроенные типы данных – примитивы. В JavaScript доступно семь примитивных типов данных: undefined, null, boolean, string, number, bigint, symbol. Все остальное в JavaScript является объектом.

4. Как рассчитать числа Фибоначчи в JavaScript?

Создать последовательность чисел Фибоначчи – очень популярная задача для программистов. Попробуйте правильно ответить на него с помощью кода.

Ответ: Последовательность чисел Фибоначчи – это последовательность чисел, где каждое значение – это сумма двух предыдущих, начинается с 0 и 1. Первые пять значений это 0, 1, 1, 2, 3, 5, 8. Пример кода:

           // запросим ввод у пользователя 
   const number = parseInt(prompt('Enter the no. of terms: '));
   let n1 = 0, n2 = 1, nextNumber;
  
   console.log('Fibonacci Sequence:');
  
   for (let i = 1; i <= number; i++) {
     console.log(n1);
     nextNumber = n1 + n2;
     n1 = n2;
     n2 = nextNumber;
   }

    

5. Как динамически добавлять и удалять свойства в JavaScript?

Ответ: Вы можете добавить свойство к объекту используя, object.property_name = value, и удалить свойство, используя delete. Пример кода:

           
   let person = new Object();
   // добавляем свойство
   person.name='Rohan';
   person.age=35;
 
   console.log(person);
  
   delete person.age;
   console.log(person);

    

6. Объясните различие между Object.freeze() и const

Ответ: const и Object.freeze – две разные фичи JavaScript. const применяется только для неизменяемой ссылки на ячейку памяти со значением, что означает невозможность задать новое значение для переменной.

          const human = {
       name: "Rakesh"
   };
   let animal = {
       species: "Monkey"
   };
   human = animal; // ERROR "person" is read-only

    

Object.freeze работает со значениями объектов. Делает объект неизменяемым, то есть изменить его свойства невозможно.

         const human = {
       name: "Rakesh"
   };
   let animal = {
       species: "Monkey"
   };
   human = animal; // ERROR "human" is read-only
 
   let human = {
       name: "Rakesh"
   };
   let animal = {
       species: "Monkey"
   };
 
   Object.freeze(human);
   //TypeError: Cannot assign to read only property 'name' of object
   human.name = "Rohan";
   console.log(human);

    


7. Объясните, что такое файлы cookie в JavaScript

С помощью этого вопроса интервьюер оценивает ваши базовые знания в веб-разработке.

Ответ: Cookies – это небольшие текстовые файлы, которые хранятся на компьютере и создаются, когда пользователь заходит на веб-сайты. Например, это могут быть сведения о пользователе или информация о содержимом корзины покупок из прошлых посещений.

8. Для чего используются операторы break и continue в JavaScript?

Эти два термина относятся к циклам. Попробуйте объяснить, как операторы break и continue влияют на цикл.
Ответ: Оператор break выходит из запущенного цикла в то время как, оператор continue продолжает работу после прерывания всего одной итерации. Оба оператора позволяют написать сложную циклическую функцию с различными результатами и требуемыми действиями на основе заданного результата функции.

9. Зачем оборачивать содержимое исходного JS-файла в блок функции?

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

10. Каковы преимущества и недостатки монолитной и микросервисной архитектуры?

Интервьюер, вероятно, хочет увидеть, понимаете ли вы различия между ними и достаточно ли осведомлены о них, чтобы определить наиболее практичный подход в любой конкретной ситуации.
Ответ: Монолитные архитектуры обычно реализуются как приложение в виде единого компонента, что упрощает добавление задач, связанных со сквозной функциональностью (англ. сross-cutting concern), таких как: ограничение запросов, ведение журнала и различные функции безопасности. То есть к сквозной относится «вспомогательная» функциональность модуля, не относящаяся напрямую к выполняемой задаче, но необходимая. Поначалу такая архитектура может показаться более практичной, но по мере развития приложения становится все труднее поддерживать код или масштабировать его.


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

***

Желаем вам успехов в прохождении интервью!

Материалы по теме

Источники

Комментарии

 
 
02 апреля 2022

Есть неточность в 1 вопросе. Стрелочные функции поддерживают this. Но определяется для них он по другому. Пример на скриншоте.

04 февраля 2022

Кроме 10-го вопроса не встречал на собеседованиях

04 февраля 2022

Будем вам признательны, если вы перечислите вопросы с собеседования в комментариях) Думаю многих заинтересует ваш опыт ;)

3 вопрос, примитивы... А где ещё 2? Где Симбол и бигинт?

04 февраля 2022

Спасибо! Вы правы, дополним ответ.

02 февраля 2022

Пример 4 нерабочий, так еще и реализация без рекурсии

03 февраля 2022

Ваша рекурсия схлопнется на 30+ члене ряда Фибоначчи

04 февраля 2022

Вот потому нужна мемоизация

04 февраля 2022

Спасибо! Исправим, очепятка.

ВАКАНСИИ

Добавить вакансию
Senior Marketing Analyst
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

LIVE >

Подпишись

на push-уведомления