Почему 1 === 1 верно, а {} === {} ложно

Когда вы погружаетесь в JavaScript, одно из первых, что вы заметите, — это его оператор строгого равенства ( ===). На первый взгляд, это кажется простым, но в некоторых случаях вы можете почесать голову.

Давайте рассмотрим, почему 1 === 1вычисляется как , trueтогда как {} === {}вычисляется как false.

Игра: примитивы против объектов

Чтобы понять это поведение, вам необходимо знать, как JavaScript обрабатывает примитивы и объекты в памяти.

Примитивы

Примитивы включают такие значения, как числа, строки, логические значения, undefined, nullи символы. Когда вы сравниваете два примитивных значения с помощью ===, JavaScript проверяет, являются ли их значения одинаковыми. Поскольку оба 1ссылаются 1 === 1на одно и то же значение, сравнение возвращает true.

Объекты

Объекты, с другой стороны, более сложны. Они хранятся в специальной области памяти…

Читать далее: https://dev.to/lawaniej/why-1−1-is-true-but-is-false-5f9d

Ответ:

См. ещёКлючевой вывод заключается в том, что 1 === 1вычисляется в, true потому что примитивы сравниваются по значению, а {} === {}вычисляется в, falseпотому что объекты сравниваются по ссылке.

1 Ответ

  1. Xм, null и массивы — это объекты. 😄