Q:

Javascript: the confuse about comparison "2 == true"

Here is a javascript comparison:
2 == true //false

it's said, the reason why return false, is because the comparison convert the true to Number datatype, and result is 1:
console.info(Number(true)) // 1

My confuse is, why the comparison don't convert the number 2 to Boolean datatype
console.info(Boolean(2)) // true

and the 2 == true result could be true ?

A:

I find the doc here:
Comparison Operators, which said:

If the two operands are not of the same type, JavaScript converts the
  operands then applies strict comparison. If either operand is a number
  or a boolean, the operands are converted to numbers if possible; else
  if either operand is a string, the other operand is converted to a
  string if possible. If both operands are objects, then JavaScript
  compares internal references which are equal when operands refer to
  the same object in memory.

