js数据类型检测

数据类型的检测

console.log(Object.prototype.toString.call({})) //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]
console.log(Object.prototype.toString.call(111)) //[object Number]
console.log(Object.prototype.toString.call('happy')) //[object String]
console.log(Object.prototype.toString.call(undefined)) //[object Undefined]
console.log(Object.prototype.toString.call(false)) //[object Boolean]
console.log(Object.prototype.toString.call(function(){})) //[object Function]

判断传入的值是否为数组

Array.isArray(arg)  如果为arg数组为true,否则为false

可以使用兼容性的写法:

export function isArray(arg) {
  if(typeof Array.isArray === 'undefined') {
    return Object.prototype.toString.call(arg) === '[object array]'
  }
  return Array.isArray(arg)
}

注意typeof检测数组和对象检测出的结果都是对象,所以用typeof检测有时候不准确,因此我们可以巧妙的使用Object.prototype.toString.call(arg)和Array.isArray(arg)来进行数据类型的检测,Array.isArray在低版本的安卓机上可能无法使用,因此如果判断数据是否是数组类型,最好使用上述兼容性写法

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容