Почему я получаю синтаксическую ошибку, если я запускаю это в консоли? {} === {}
В консоли хрома я бегу {} === {}
и я получаю синтаксическую ошибку, неожиданное '==='.
Однако, если я заверну это в паренсе, как ({} === {})
тогда я получаю false
что бы я ожидал.
Является ли объект литералом, в первой позиции, перепутанным с блоком кода или чем-то?
1 ответ
Решение
Без круглых скобок, {}
будет рассматриваться как пустой code block
в JavaScript =
с последующим code block
будет неверный синтаксис. Вот почему вы видите там ошибку.
Если вы оберните его внутри скобки, как ({} === {})
то это будет считаться expression
и оно будет оценено как ложное, так как оба ссылаются на два разных объекта.
Следующий пример может дать вам четкое представление об этом,
{ var x = 5; console.log(x); } == 2
// will throw the same error that you are facing.