JavaScript's comparison == operator is not at all like C#'s or Java's.
Just always use
===please.
This example from MDN shows how abstract equality casts types before comparing.
1 == 1 // true
'1' == 1 // true
1 == '1' // true
0 == false // true
0 == null // false
var object1 = {'value': 'key'};
var object2 = {'value': 'key'};
object1 == object2 // false
0 == undefined // false
null == undefined // true
null == false // false, weird right?
false == undefined // false, alsoAbstract inequality is similar.
1 != 2 // true
1 != '1' // false
1 != "1" // false
1 != true // false
0 != false // false99% of the time, you probably meant to use the strict equality === operator.
Often it is better to avoid abstract equality comparison and prevent unintentional behavior.
3 === 3 // true
3 === '3' // false