TypeOF возвращает объект
Все типы данных в JavaScript являются строгими объектами, но в реальном использовании у нас все еще есть разные типы. Если вы хотите определить, является ли переменная массивом или объектом, ее нельзя обрабатывать с помощью типа, потому что все возвращает объект
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
document.write ('o typeof is' + typeof o);
document.write ('<br />');
document.write ('typeof is' + typeof a);
осуществлять:
Кода -копия выглядит следующим образом:
o typeof - это объект
Тип - это объект
Поэтому мы можем только отказаться от этого метода. Мы должны судить, что есть два метода для массива или объекта.
Во -первых, используйте TypeOf, чтобы добавить атрибут длины
Массив имеет атрибут длины, объект нет, а массив типа и объект оба возвращают объект, поэтому мы можем судить по этому пути
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
if (typeof o == 'Object') {
if (typeof o.length == 'number') {
вернуть «массив»;
}еще{
вернуть 'объект';
}
}еще{
return 'param не тип объекта';
}
};
оповещение (getDatatype (o)); // Объект
оповещение (getDatatype (a)); // Множество
предупреждение (getDatatype (1)); // param не тип объекта
оповещение (getDatatype (true)); // param не тип объекта
оповещение (getDatatype ('a')); // param не тип объекта
Во -вторых, используйте экземпляр
Используйте экземпляр, чтобы определить, является ли переменная массивом, например:
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
оповещение (экземпляр массива); // истинный
оповещение (o экземпляр массива); // ЛОЖЬ
Вы также можете определить, принадлежит ли он объекту
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
оповещение (экземпляр объекта); // истинный
Alert (o ancessionof object); // истинный
Но массив также принадлежит объекту, поэтому оба из вышеперечисленного верны. Поэтому, когда мы используем экземпляр, чтобы определить, является ли тип данных объектом или массивом, мы должны сначала судить об массиве и, наконец, судить объект
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
if (o экземпляр массива) {
вернуть 'массив'
} else if (o encessOf object) {
вернуть 'объект';
}еще{
return 'param не тип объекта';
}
};
оповещение (getDatatype (o)); // Объект
оповещение (getDatatype (a)); // Множество
предупреждение (getDatatype (1)); // param не тип объекта
оповещение (getDatatype (true)); // param не тип объекта
оповещение (getDatatype ('a')); // param не тип объекта
Если вы не расставляете приоритет массива, например:
Кода -копия выглядит следующим образом:
var O = {'name': 'Lee'};
var a = ['reg', 'blue'];
var getDatatype = function (o) {
if (o encessOf object) {
вернуть 'объект'
} else if (o ancessionof array) {
вернуть «массив»;
}еще{
return 'param не тип объекта';
}
};
оповещение (getDatatype (o)); // Объект
оповещение (getDatatype (a)); // Объект
предупреждение (getDatatype (1)); // param не тип объекта
оповещение (getDatatype (true)); // param не тип объекта
оповещение (getDatatype ('a')); // param не тип объекта
Тогда массив также будет оценен как объект.