Сообщение от Мараторий
|
Я вот чего не очень понимаю. Зачем при сравнении чего-либо с логическим выражением надо это логическое выражение приводить к числу, а не сравниваемый объект приводить к логическому выражению?
|
Может потому что оператор == изначально нацелен именно на определение равенства разнотипных элементов. И если приводить сложные типы данных сразу к логическому значению теряется много вариантов.
Ведь тут
new String('')==false получается: сначала false в
0 потом объект в пустую строку и пустая строка в
0.
Не забываем что своим объектам можно переопределять метод valueOf и кто знает тогда как он будет сравниваться например со строкой или числом.