(1)typeof对于丰富的对象实例(null,array等),只能返回"Object"字符串。
(2)变量a为一个array,使用a instanceof Object,也会返回true,array本身就是对象类型
(3)使用原型链区分对象还是数组
function isObjArr(value){
if (Object.prototype.toString.call(value) === "[object Array]") {
console.log('value是数组');
}else if(Object.prototype.toString.call(value)==='[object Object]'){
console.log('value是对象');
}
}
(4)项目中推荐使用以下方法判断变量是数组(isArray和原型链结合判断)
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
(5)项目中判断是否是空对象
Object.prototype.toString.call({})==='[object Object]'