Почему сравнение {} и [] показывает ошибку?

В свободное время я просто играл с консолью js, я получил непредвиденную ошибку:

js> [] == {}
false

js> {} == []
typein:5: SyntaxError: syntax error:

Я попытался с ===:

js> [] === {}
false
js> {} === []
typein:9: SyntaxError: syntax error:

Думаете ли вы здесь неправильно?

Я тестировал это с помощью Firefox, Chrome и jscore.

Ответы

Ответ 1

Это потому, что во втором случае {} интерпретируется как кодовый блок, а не объект.

Если вы попробуете ({}) == [], это будет просто отлично.

js> ({}) == []
false
js> ({}) === []
false