Во -первых, давайте поговорим о разнице между нулевым и неопределенным:
Выполнить тип на объявленных, но неинициализированных и не выявленных переменных, оба возвращают «неопределенные».
NULL означает пустой указатель объекта, а операция TypeOF будет возвращать «объект».
Как правило, значение переменной явно не установлено для неопределенного, но наоборот, для переменной, которая собирается сохранить объект, переменная должна быть явно разрешена сохранить нулевое значение.
var bj; оповещение (bj); // "неопределенное" bj = null; alert (typeof bj); // «Объект» оповещение (bj == null); // trueBj = {}; alert (bj == null); //ЛОЖЬСпасибо, две два функции были даны мне старшим братом Денгом, спасибо.
/** Обнаружение, является ли объект пустым объектом (без каких -либо читаемых свойств). * Метод обнаруживает как свойства самого объекта, так и свойства, унаследованные от прототипа (так что это не сделало HasownProperty). */function isempty (obj) {for (var in in obj) {return false;} return true;};Пустой объект упоминается здесь {} или NULL? Я написал тестовый пример.
var a = {}; a.name = 'realwall'; console.log (isempty (a)); //falseconsole.log (isempty ({})); //trueConsole.log(Isempty(Null)); // true // Обратите внимание, что нет никакой синтаксической ошибки, когда параметр является нулевым, то есть, хотя вы не можете добавить атрибуты к нулевым нулевым указателю, вы можете использовать оператор FOR? * Метод только обнаруживает свойства самого объекта и не обнаруживает свойства, унаследованные от прототипа. */function isownempty (obj) {for (var in in obj) {if (obj.hasownproperty (name)) {return false;}} return true;};Разница между {} и null:
Эта вещь очень важна.
var a = {}; var b = null; a.name = 'realwall'; b.name = 'jim'; // здесь будет представлена ошибка. B - нулевой указатель для изображения, а атрибуты не могут быть добавлены непосредственно как обычные объекты. b = a; b.name = 'Jim'; // A и B указывают на тот же объект в это время. A.Name, B.Name - все это «JAM»