Почему 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потому что объекты сравниваются по ссылке.
Xм, null и массивы — это объекты. 😄