What I think ==
is basically does value comparision.
In above all situations it's comparing just values. But in this one
new Number(2) == new String("2")
Both are objects so it doesn't compare values, it tries to compare values of object references. That's why it returns false
.