Специализация
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 в телеграм
Как происходит сравнение типов?
В JavaScript сравнение типов зависит от оператора. Оператор === (строгое равенство) требует, чтобы типы сравниваемых значений были одинаковыми. Оператор == (нестрогое равенство) автоматически приводит типы к общему значению перед сравнением. Поэтому при нестрогом сравнении, например, число и строка могут быть равны.
Почему объекты в JavaScript нельзя сравнить по значению через ===?
Объекты в JavaScript сравниваются по ссылке, а не по содержимому. Даже если два объекта имеют одинаковые поля и значения, они считаются разными, если созданы отдельно. Оператор === проверяет, указывают ли переменные на один и тот же объект в памяти. Поэтому сравнение по значению через === невозможно. Это фундаментальное свойство языка.
Что означает сравнение объектов по ссылке?
Сравнение объектов по ссылке означает проверку того, указывают ли переменные на один и тот же объект в памяти. Если ссылки совпадают, объекты считаются равными. Если объекты имеют одинаковое содержимое, но разные ссылки, результат будет false. Такое поведение характерно для всех ссылочных типов. Это влияет на работу со state и сравнение данных.
Что такое глубокое сравнение объектов?
Глубокое сравнение объектов — это сравнение всех вложенных свойств и значений. Оно проверяет, совпадает ли структура объектов полностью. Для этого используется рекурсия или обход дерева. Такой подход даёт точный результат, но может быть дорогим по производительности. Его используют только там, где это действительно необходимо.
Чем примитивные типы отличаются от непримитивных?
Примитивы (например, number, string, boolean) хранят “само значение”, и при присваивании копируется значение. Непримитивы (объекты, массивы, функции) хранятся как ссылка на объект в памяти, и при присваивании копируется ссылка. Поэтому изменения объекта через одну переменную видны в другой. Также сравнение объектов чаще сравнивает ссылки, а не содержимое.
Почему сравнение аргумента с самим собой помогает определить NaN?
Как реализовать глубокое сравнение объектов (deep equal)?
Какие альтернативы Redux существуют?
Рейтинг:
4
Сложность:
6
Потому что NaN по стандарту IEEE 754 не равно никакому значению, включая самого себя. Это поведение специально заложено в спецификацию. Все остальные значения в JavaScript равны самим себе. Поэтому сравнение значения с самим собой позволяет надёжно выявить NaN.
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
5
Рейтинг:
3
Сложность:
3
Рейтинг:
5
Сложность:
6
Рейтинг:
4
Сложность:
5
Рейтинг:
5
Сложность:
8
Рейтинг:
5
Сложность:
4