Почему так?
Ошибки самого JS или я чего-то недосмотрел?
Как часто можно встретить такие ошибки?

(Ошибки самого JS)
Не каких ошибок не надо занижать интеллектуальные способности JS
эта особенность настрого сравнения если вы пытаетесь сравнивать несравнимое То JS не плюётся в вас ошибками с надписями что вы не правы а просто используя свой ии делоет это за вас итак
"0"==true//false и смотрит что вы там в строке написали если там написан ноль то значение нулевое
также в его понимании и это тоже ноль
[0]==true//false
[]==true//false
""==true//false
(или я чего-то недосмотрел) Определённо !!!
⚤
А Boolean("0") == true слабо написать?
Или совсем непонятно, что "0" и Boolean("0") - это разные вещи!
Какой-то совсем уж дебильный вопрос, даже по меркам Ответиков... Что именно "почему"? Почему непустая строка преобразуется в булевый тип как true (➝ потому что не пуста), или почему нуль не равен единице (➝ потому что это разные значения)?
Ну раз неспособен ты логически думать (находить ответ самостоятельно) и формулировать мысли - зачем тогда вообще лезешь в программирование?.. в котором эти навыки КЛЮЧЕВЫЕ. Не очень понятно, на что вы такие надеетесь, т. е. какую перспективу для себя видите в попытках достичь заведомо недостижимое. Ведь просто теряете время, вместо того чтобы совершенствоваться в другом деле, к которому есть способности. У каждого свои предрасположенности, и далеко не у всех они лежат в области "медом намазанного" айти.
Это ошибки дизайна JS. И это твоя ошибка: не изучаешь JS по серьёзной книге, где об этом написано.
Ошибка в примере, так как для получения false нужно писать Boolean(0), а не Boolean("0").
Ноль должен быть без кавычек, иначе он будет рассматриваться как строка.
в js нет типов, есть значения, эти значения как-то друг к другу подгоняются
следовательно и ошибок типизации не может быть, что какие-то типы друг к другу не подходят. короче js просто лепит всё в одну кашу, вот и всё.
те кто приходят в js со статических языков, в которых привыкли что к каждой переменной строго привязаны типы, и начинают разсуждать, вот какой js плохой язык.