Console.log(false == 0) // → true почему?
Потому что приведение типов, и нестрогое сравнение.
А вот строгое:console.log(false === 0) // → false
Вот вам табличка, что к чему приводится
https://dorey.github.io/JavaScript-Equality-Table/
https://learn.javascript.ru/comparison#%D1%81%D1%8...
Для строгой проверки используйте строгое равенство:console.log(false === 0)