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