判断数组有哪些方法?

  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]'
  }
}

VivenZZ
88 声望0 粉丝