Сообщение от 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
Так что никаких приколов, все обосновано и описано