Great example of how the lack of custom value types really hurts JavaScript as a functional programming language.
> [ 1, 2, 3 ] === [ 1, 2, 3 ]
false
Ridiculous! > [ 1, 2, 3 ] === [ 1, 2, 3 ]
false
Ridiculous!> [] == []
< false
sometimes. And that's with two equal signs, not three!
Python says True.
Ruby says true.
JS says false.
And otherwise, JS is quite lenient with not interpreting the input like you describe it when using "==":
> [] == 0
< true
> [] == false
< true
> _.isEqual([ 1, 2, 3 ], [ 1, 2, 3 ])
true