经常遇到问如何判断一个数组之类的问题
Array.isArray() //用于确定传递的值是否是一个 Array。
Array.isArray([]) // true
Array.isArray({}) // false
Array.isArray('') // false
Array.isArray(Array.prototype) // true
当然Array.isArray() 兼一些容性可能稍差,最保险的方法还是使用Object.prototype.toString.call,可以写个专门的类型判断的方法
function classof(o) {
if (o === null) return "Null";
if (o === undefined) return "Undefined";
return Object.prototype.toString.call(o).slice(8, -1);
}
classof({}) // "Object"
classof([]) // "Array"
classof('') // "String"
classof(null) // "Null"
classof(undefined) // "Undefined"
classof(function() {}) // "Function"
classof(Symbol) // "Function"
classof(Symbol()) // "Symbol"