Почему я получаю синтаксическую ошибку, если я запускаю это в консоли? {} === {}

В консоли хрома я бегу {} === {} и я получаю синтаксическую ошибку, неожиданное '==='.

Однако, если я заверну это в паренсе, как ({} === {}) тогда я получаю falseчто бы я ожидал.

Является ли объект литералом, в первой позиции, перепутанным с блоком кода или чем-то?

1 ответ

Решение

Без круглых скобок, {} будет рассматриваться как пустой code block в JavaScript = с последующим code block будет неверный синтаксис. Вот почему вы видите там ошибку.

Если вы оберните его внутри скобки, как ({} === {}) то это будет считаться expression и оно будет оценено как ложное, так как оба ссылаются на два разных объекта.

Следующий пример может дать вам четкое представление об этом,

{ var x = 5; console.log(x); } == 2
// will throw the same error that you are facing.
Другие вопросы по тегам