Сборник вопросов по Javascript для собеседований на должность старшего разработчика.

Что такое прототипное наследование в Javascript?

В JS мы следуем прототипному наследованию, которое характеризуется наследованием объектов через ключевое слово прототип.
Объект наследует другой объект. Когда метод вызывается в объекте, выполняется поиск этого метода в свойствах текущего объекта. Если он не найден, он перейдет к свойству прототипа в родительском объекте и будет искать метод там и так далее, пока свойство прототипа не станет нулевым.

Этот шаблон наследования одного объекта в JS называется прототипным наследованием.

Что такое примитивные значения в Javascript?

Это самый простой тип данных в Javascript. Это не объект, в отличие от других структур данных, таких как массивы, наборы и карты, которые все являются объектами под капотом.

Примерами примитивов в Javascript являются строки, числа и логические значения.

Как создать объект из другого объекта в Javascript?

Мы можем использовать глобальный объект Object и метод .create() в нем. Таким образом, мы делаем объект похожим на человека.

let p_copy = Object.create(rahul);

Что такое функции высшего порядка в javascript?

Функции высшего порядка — это функции, которые принимают функцию в качестве параметра или возвращают функцию. Одним из примеров является метод массива .filter() в javascript, где мы передаем функцию другой функции. Другой — это setImmediate() и setTimeout(), где мы передаем функцию обратного вызова в качестве параметра.

Что такое мемоизация в Javascript?

Мемоизация в Javascript — это метод, с помощью которого мы сохраняем в памяти результат вызова функции, сделанного с определенным параметром, и передаем значение из хранилища, а не вызываем функцию.
В JS мы можем реализовать мемоизацию с помощью функций более высокого порядка.

const memoizedSquare = memo(square);

function memo(func){

  let store ={}

  return function(args){

      let key = JSON.stringify(args);

      if(store[key]){
        return store[key];
      }

      let res = func(args);
      store[key] = res;

      return store[key];

  }

}

Каковы способы создания объекта в Javascript?

Есть два способа создания объектов в javascript. Во-первых, через функцию-конструктор, которая действует как конструктор объекта. Используя вместе с новым ключевым словом, мы можем создавать объекты.

function Person(name, profession){
  this.name = name;
  this.profession = profession;
}

let p = new Person("Rahul", "Professor");

Другой способ — просто создать такой объект:

let obj = {
    name: "Ashank",
    profession: "software developer"
}

Что такое строгий режим в Javascript?

Если мы объявим «use strict»; перед кодом в javascript мы можем запускать js в строгом режиме, который запрещает много кода, который потенциально может содержать ошибки. Он запрещает неявное объявление глобальных переменных. Это запрещает удаление переменной.

Что такое ES6 и представлены ли некоторые функции?

  1. стрелочные функции
  2. деконструкция объекта и массива
  3. let и const как объявления области блока
  4. были введены классы

Что такое замыкания в JS? Вариант использования?

Замыкание в JS — это функция, состоящая из функции с некоторым лексическим окружением. Это означает, что он имеет доступ к данным вместе с внутренней функцией, что делает его функцией с отслеживанием состояния. Кроме того, поскольку переменные, объявленные внутри него, не могут быть доступны внешнему коду, это также действует как частный спецификатор доступа к объекту.

Замыкания могут использоваться для запоминания функции. Его можно использовать как функцию счетчика.

Что такое обещание в JS?

Обещание — это представление значения, которое является результатом асинхронной операции. Он находится в одном из трех состояний:

  1. pending: исходное состояние, ни выполнено, ни отклонено.
  2. выполнено: это означает, что операция была успешно завершена.
  3. отклонено: это означает, что операция не удалась.

Каковы некоторые методы массива Javascript?

Некоторые примеры: .map() возвращает массив, .forEach() перебирает массив и .filter() фильтрует только некоторые элементы.

Что такое стрелочные функции в JS?

Стрелочные функции были представлены с изменениями ES6 в JS. Стрелочные функции — это анонимные функции с более простым синтаксисом. Используются для написания читаемого и эстетически более чистого кода.

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

Что такое подъем в JS?

Подъем в JS относится к процессу, при котором интерпретатор перемещает объявление функций в начало файла до выполнения кода.

Это считается особенностью объявлений var.

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

== выполняет преобразование типов переменных перед выполнением сравнения.

Объясните константу? Можем ли мы изменить стоимость недвижимости?

Это создаст постоянное значение блока. Итак, здесь есть два момента: во-первых, объявление области действия блока — это объявление, в котором переменные «существуют» в скобках. Во-вторых, объявление const вызовет ошибку, когда переменной будет присвоено новое значение. Однако это не мешает нам изменять свойства объекта const.

Каковы способы асинхронной обработки в JavaScript?

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

Кроме того, есть шаблоны .then() и .catch(), которые можно использовать для присоединения функции обратного вызова к промису, и который будет работать, как только промис будет разрешен.

Наконец, есть шаблон асинхронного ожидания, в котором мы пишем код так, чтобы он выглядел «синхронно».