常见使用typeof判断类型的结果:
typeof undefined //undefined
typeof null //object
typeof NaN //number
typeof function(){} //function
typeof [] //object
判断object的时候,有可能因为是null,因特殊值null会被认为空的对象引用
let bar = null;
console.log(typeof bar === "object"); //true
所以在判断之前我们要判断是否为空:
let bar = null,a={id:1},c={},b;
console.log(bar != null && typeof bar === "object");//false
console.log(a!== null && typeof a === 'object'); //true
console.log(c !== null && typeof === "object");//true
console.log(b !== null && typeof === "object"); //false
如果变量是一个数组
var bar = [];
console.log(bar != null && typeof bar === "object" && toString.call(bar) !== "[object Array]"); //true
console.log(bar !== null && typeof bar === "object" && bar instanceof Array); //true
console.log(bar !== null && typeof === "object" && Array.isArray(bar));//true