Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

Подпишись на React Developer в телеграм

Вопросы React Frontend 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

В JavaScript typeof null возвращает 'object' из-за исторической ошибки в ранних версиях языка. При создании JavaScript значения в памяти хранились с тегом типа, и null имел нулевой указатель, который интерпретировался как объектный тип. Исправление этой ошибки сломало бы существующий код, поэтому поведение было сохранено.
Подробнее
  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    8

  • Рейтинг:

    4

  • Сложность:

    8

  • Рейтинг:

    5

  • Сложность:

    7