类型判断

126 阅读1分钟
原文链接: mp.weixin.qq.com

经常遇到问如何判断一个数组之类的问题

Array.isArray() //用于确定传递的值是否是一个 Array。Array.isArray([]) // trueArray.isArray({}) // falseArray.isArray('') // falseArray.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"