Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Какие преимущества предоставляет оператор spread по сравнению с альтернативными подходами, такими как метод concat() для массивов или Object.assign() для объектов?
Оператор spread (...) позволяет легко копировать и объединять массивы и объекты с помощью более лаконичного и читаемого синтаксиса. В отличие от метода concat(), который требует явного указания массива для объединения, и Object.assign(), который может затруднить копирование объектов с вложенными структурами, оператор spread делает эти операции интуитивно понятными и менее подверженными ошибкам. Это упрощает написание кода и повышает его читаемость.
Object.entries. Для чего? Что возвращает?
Object.entries() возвращает массив, где каждый элемент является массивом из двух элементов: ключа и значения соответствующего свойства объекта. Это полезно для работы с объектами, когда необходимо обработать как ключи, так и значения, например, для их перебора или преобразования.
Какое различие между number и object в том, как они хранятся в памяти?
number — примитивный тип, он хранится в стеке (быстрый доступ, фиксированный размер). object — ссылочный тип, его данные хранятся в куче (динамическое выделение памяти), а в стеке сохраняется только ссылка на него.
Отличие map, set и object
Object — это базовая структура "ключ-значение", где ключи обычно являются строками или символами. Map — это более современная и специализированная структура "ключ-значение", которая позволяет использовать ключи любого типа (включая объекты), сохраняет порядок элементов и предоставляет удобные методы для работы. Set — это коллекция уникальных значений любого типа, которая также сохраняет порядок добавления.
В чем разница между Object.assign и копированием через JSON.stringify / JSON.parse?
Object.assign делает поверхностное копирование объекта.JSON.stringify / JSON.parse выполняет глубокое копирование, но с серьёзными ограничениями.
При использовании JSON теряются функции, undefined, Symbol и специальные типы данных.
Также JSON не умеет работать с циклическими ссылками.
Как работает Object.freeze и является ли он глубоким?
Какую сложность будет иметь решение с объектом-словарём
Чем Object.is отличается от ===?
Как работают методы Object.keys и Object.values в JavaScript?
Что такое DOM-дерево и как оно устроено?
Рейтинг:
5
Сложность:
5
Object.freeze запрещает изменение свойств объекта.
Он блокирует добавление, удаление и изменение свойств первого уровня.
Однако заморозка не является глубокой.
Вложенные объекты остаются изменяемыми.
Рейтинг:
4
Сложность:
6
Операции доступа к объекту-словарю (Object или Map) обычно имеют O(1). Это связано с использованием хеш-таблиц. Однако в худшем случае сложность может деградировать до O(n) из-за коллизий. На практике для большинства задач доступ считается константным.
Рейтинг:
5
Сложность:
7
Object.is и === похожи, но ведут себя по-разному в двух случаях: при сравнении NaN и +0 / -0. Object.is(NaN, NaN) возвращает true, а NaN === NaN — false. Также Object.is(+0, -0) возвращает false, тогда как +0 === -0 — true. Во всех остальных случаях поведение одинаково.
Рейтинг:
4
Сложность:
5
Методы Object.keys и Object.values позволяют извлекать ключи и значения объекта соответственно:
Object.keys возвращает массив всех ключей объекта.
Object.values возвращает массив всех значений объекта.
Рейтинг:
5
Сложность:
2
Рейтинг:
3
Сложность:
6
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
4
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
5