Показать сообщение отдельно
  #3 (permalink)  
Старый 02.03.2010, 09:28
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от micscr
Если это не "объект" null.
null — это не объект.

Сообщение от micscr
Это такой прикол в js.
alert(typeof new Object());
alert(typeof new Array());
alert(typeof new Boolean(true));
alert(typeof new Number(true));

Все это объекты, почему поведение должно отличаться?
Точно так же не выполнится:
var a = new Number(0);

if (!a) {
    alert(1);
}

и
var a = new Object();

if (!a) {
    alert(1);
}


По спецификации логический оператор НЕ(!) возвращает false для Object:
http://javascript.ru/ecma/part11#a-11.4.9
http://javascript.ru/ecma/part9#a-9.2

Так что никаких приколов, все обосновано и описано

Последний раз редактировалось Octane, 02.03.2010 в 09:39.
Ответить с цитированием