Я узнаю о ==
vs. ===
и наткнулся на этот ответ, который очень помог в понимании концепции. Однако я задавался вопросом об одном из примеров:
'0' == false // true
Это может иметь смысл, поскольку ==
не проверяет тип. Но затем я попробовал некоторые возможные принуждения в консоли и нашел следующее:
Boolean('0') // true
String(false) // "false"
Я бы подумал, что '0' == false
имеет то же значение истинности, что и '0' === String(false)
, но это, похоже, не так.
Итак, как действует принуждение? Есть ли более простой тип, который мне не хватает?