In js when we loosely compare 2 different types the loose equality operator coerces those types to numbers before performing the comparison.
1 == true ==> 1 == 1 ==> true
1 == [1] ==> 1 == "1" ==> true
1 == [2] ==> 1 == "2" ==> false
0 == false ==> 0 == 0 ==> true
ps : Special case for null and undefined
null == undefined ==> true