乐趣区

关于前端:判断数组有哪些方法

判断数组有哪些办法?

  1. Array.isArray()

    const arr = [1,2,3]
    console.log(Array.isArray(arr)) // true')
  2. constructor

    console.log(arr.constructor === Array) // true
  3. instanceof(只能判断对象类型,不能判断原始类型,并且所有的对象类型都是 Object)

    [] instanceof Object //true
    [] instanceof Array //true
    {} instanceof Object //true
    new String('3213') instanceof String //true
    '1231' instanceof String //false
    
    console.log(arr instanceof Array)
  4. Object.prototype.toString()

    console.log(Object.prototype.toString.call(arr) === '[object Array]'
  • 其中 instanceof 其实原则上也是用 constructor 来判断的
  • 工作中中的写法
if(!Array.isArray) { // 判断浏览器是否有 isArray 办法
  Array.isArray = function(arg){return Object.prototype.toString.call(arg) === '[object Array]'
  }
}
退出移动版