Torento20345, Ну прочитайте же документацию. RTFM!
При сравнении разных типов выполняются определённые преобразования:
Строковый примитив A сравнивается с логическим примитивом B по правилу:
ToNumber(A) === ToNumber(B)
Torento20345, зачем ты используешь нестрогое равенство? Это игрушка дьявола, магия шайтанов. Все что там происходит с нестрогим равенством для новичка выглядит как дичь, потому что там работают специальные правила языка. При том что нестрогое равенство в коде использовать вредно.
Почитай MDN, там все подробно расписано.