Я могу сравнить {} с истинным или ложным или с самим собой, но сравнение с нулевым или неопределенным дает синтаксическую ошибку. Это потому, что {} является значением объекта, а не ссылкой? Кажется странным, что это будет синтаксическая ошибка вместо какой-либо ошибки типа времени выполнения или просто сработает.
Чтобы прояснить, мне любопытно, почему это SyntaxError, в основном по сравнению с выполнением {} == {}
которое не только не SyntaxError, но вообще не является ошибкой.