Показать сообщение отдельно
  #20 (permalink)  
Старый 31.01.2010, 12:30
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Сообщение от Niar Посмотреть сообщение
if (new String('')==false) alert('равно')
Ну а тут false то почему
Черт. Точно. Вы правы.
При сравнении объекта и логического выражения.
Логическое false "превращается" в 0
Объект сначала "превращается" в ToPrimitive(object)
Потом этот результат переходит в число ToNumber(ToPrimitive(object))

Видимо ToPrimitive(new String('')) -> ""
ToNumber(ToPrimitive(new String(''))) = ToNumber("") -> 0
ToNumber(false) -> 0

0 === 0

Вот так я это вижу.
Ответить с цитированием