The comparison x == y, where x and y are values, produces true or false. Such a comparison is performed as follows:
...
5. If Type(x) is String and Type(y) is Number, return the result of the comparison ToNumber(x) == y.
ToNumber applied to Strings applies the following grammar to the input String. If the grammar cannot interpret the String as an expansion of StringNumericLiteral, then the result of ToNumber is NaN.
'A' == 65
// =>
Number('A') == 65
// =>
NaN == 65
// =>
false