Hacker News new | ask | show | jobs
by Gepser 4465 days ago
It's funy that "true==[[]]" is false but "false==[[]]" is true. Maybe someone could explain why "[[]]" is considered false?
3 comments

If you write ([[]] == false) you compare values of this object. Internally a [[]].toString() is called which gives an empty string (cause the first element is also an empty array) which in turn is considered false in javascript.

Otherwise [[],[]] is true cause cause [[],[]].toString() gives you this string: ",".

Even better, [1] == 1 but [1] != [1]
If "false == X" is true, shouldn't we expect that "true == X" is false?