2017-02-12 15 views
14

W wolnym czasie, właśnie grając z js konsoli, mam nieoczekiwany błąd:Dlaczego porównanie {} i [] pokazuje błąd?

js> [] == {} 
false 

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

Próbowałem z ===:

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

myślę źle tutaj?

Testowałem to w Firefoksie, Chrome i jscore.

Odpowiedz

25

To dlatego, że w drugim przypadku {} jest interpretowany jako blok kodu, a nie obiekt.

Jeśli spróbujesz ({}) == [], to działa dobrze.

js> ({}) == [] 
false 
js> ({}) === [] 
false 
Powiązane problemy