Использование обычного сравнения == может вызывать проблемы. Например, оно не отличает 0 от false:
Это происходит из-за того, что операнды разных типов преобразуются оператором == к числу. В итоге, и пустая строка, и false становятся нулём.'hello' == 123parseInt('hello') == parseInt('123')[] == {} аналогично parseInt([]) == parseInt({})? Получается, то сравнение
'hello' == '123'
это
parseInt('hello') == parseInt('123')
так?
И [] == {} аналогично parseInt([]) == parseInt({})?
'hello' == 123 приведёт строку к числу ToNumber('hello') == 123 и получится NaN == 123 → сравниваем два числа и получаем false.Number.