Warum wird JavaScript von manchen als die verwirrendste Web-Programmiersprache angesehen?
1 == 1; //true 
'foo' == 'foo'; //true 
[1,2,3] == [1,2,3]; //false 
Das ist bei den meisten Sprachen gültig, [1,2,3] ist ein Reference Type…
Aber was ist damit?
new Array(3) == ",,"; //true 
Implizite Stringkonvertierung eines leeren Arrays…
'' == false // -> true 
[] == false // -> true 
null == undefined // -> true 
und das ist nur die Spitze des Eisbergs. Wir wollen gar nicht mit Scope, Function Declaration, Modules und anderen Comparison Algorithm’s anfangen.