Специализация
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 сравниваются по ссылке, а не по содержимому. Даже если два объекта имеют одинаковые поля и значения, они считаются разными, если созданы отдельно. Оператор === проверяет, указывают ли переменные на один и тот же объект в памяти. Поэтому сравнение по значению через === невозможно. Это фундаментальное свойство языка.
Почему NaN !== NaN?
NaN означает “не число” и по спецификации не равен ничему, включая самого себя. Это сделано для отражения ошибок вычислений, а не конкретного значения. Поэтому любое сравнение NaN через == или === возвращает false. Для проверки NaN используются специальные методы.
Как происходит приведение типов при нестрогом сравнении?
При нестрогом сравнении == JavaScript пытается привести операнды к одному типу. Правила зависят от типов значений: строки могут превращаться в числа, null и undefined считаются равными друг другу, а объекты приводятся к примитивам. Эти преобразования не всегда очевидны, из-за чего сравнение может вести себя неожиданно. Именно поэтому в большинстве случаев рекомендуют использовать ===.
Почему объект не равен числу при сравнении ==?
При сравнении объекта с числом оператор == пытается привести объект к примитиву. Для этого вызываются методы valueOf и toString. Если результат приведения не совпадает с числом, сравнение возвращает false. Поведение может выглядеть неожиданно, но оно строго определено спецификацией.
Чем Object.is отличается от ===?
Object.is и === похожи, но ведут себя по-разному в двух случаях: при сравнении NaN и +0 / -0. Object.is(NaN, NaN) возвращает true, а NaN === NaN — false. Также Object.is(+0, -0) возвращает false, тогда как +0 === -0 — true. Во всех остальных случаях поведение одинаково.
В чем разница между == и === в JavaScript?
Почему typeof null === "object"?
Рейтинг:
5
Сложность:
4
== сравнивает значения с приведением типов.=== сравнивает и значение, и тип без приведения.=== предсказуемее и безопаснее.
В современном коде рекомендуется использовать ===.
Рейтинг:
4
Сложность:
2
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
8
Рейтинг:
4
Сложность:
8
Рейтинг:
5
Сложность:
7