Сборник вопросов по 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 и представлены ли некоторые функции?
- стрелочные функции
- деконструкция объекта и массива
- let и const как объявления области блока
- были введены классы
Что такое замыкания в JS? Вариант использования?
Замыкание в JS — это функция, состоящая из функции с некоторым лексическим окружением. Это означает, что он имеет доступ к данным вместе с внутренней функцией, что делает его функцией с отслеживанием состояния. Кроме того, поскольку переменные, объявленные внутри него, не могут быть доступны внешнему коду, это также действует как частный спецификатор доступа к объекту.
Замыкания могут использоваться для запоминания функции. Его можно использовать как функцию счетчика.
Что такое обещание в JS?
Обещание — это представление значения, которое является результатом асинхронной операции. Он находится в одном из трех состояний:
- pending: исходное состояние, ни выполнено, ни отклонено.
- выполнено: это означает, что операция была успешно завершена.
- отклонено: это означает, что операция не удалась.
Каковы некоторые методы массива Javascript?
Некоторые примеры: .map() возвращает массив, .forEach() перебирает массив и .filter() фильтрует только некоторые элементы.
Что такое стрелочные функции в JS?
Стрелочные функции были представлены с изменениями ES6 в JS. Стрелочные функции — это анонимные функции с более простым синтаксисом. Используются для написания читаемого и эстетически более чистого кода.
Они также имеют некоторые ограничения. Они не имеют привязки к вызывающему объекту и, следовательно, не должны использоваться в качестве методов объекта. Их также нельзя использовать в качестве функций-конструкторов, вызов их с помощью new вызовет ошибку.
Что такое подъем в JS?
Подъем в JS относится к процессу, при котором интерпретатор перемещает объявление функций в начало файла до выполнения кода.
Это считается особенностью объявлений var.
В чем разница между == и ===?
== выполняет преобразование типов переменных перед выполнением сравнения.
Объясните константу? Можем ли мы изменить стоимость недвижимости?
Это создаст постоянное значение блока. Итак, здесь есть два момента: во-первых, объявление области действия блока — это объявление, в котором переменные «существуют» в скобках. Во-вторых, объявление const вызовет ошибку, когда переменной будет присвоено новое значение. Однако это не мешает нам изменять свойства объекта const.
Каковы способы асинхронной обработки в JavaScript?
Во-первых, есть обратные вызовы, которые представляют собой функции, которые передаются в качестве параметров в асинхронную функцию и предназначены для запуска на каком-то более позднем этапе, когда асинхронная функция выполнена.
Кроме того, есть шаблоны .then() и .catch(), которые можно использовать для присоединения функции обратного вызова к промису, и который будет работать, как только промис будет разрешен.
Наконец, есть шаблон асинхронного ожидания, в котором мы пишем код так, чтобы он выглядел «синхронно».