js判断数组的方法及对比

主要有三个:Object.prototype.toString.call() 、 instanceof 以及 Array.isArray(),对比如下:

  • Object.prototype.toString.call()
    • 优点:这种方法对于所有基本的数据类型都能进行判断,即使是 null 和 undefined 。
    • 缺点:不能精准判断自定义对象,对于自定义对象只会返回[object Object]
  • instanceOf
    • 优点:instanceof 可以弥补 Object.prototype.toString.call()不能判断自定义实例化对象的缺点。
    • 缺点: instanceof 只能用来判断对象类型,原始类型不可以。并且所有对象类型 instanceof Object 都是 true,且不同于其他两种方法的是它不能检测出 iframes。
  • Array.isArray()
    • 优点:当检测 Array 实例时,Array.isArray 优于 instanceof ,因为 Array.isArray 可以检测出 iframes
    • 缺点:只能判别数组
posted @ 2022-04-14 10:37  下一秒钟已经不同  阅读(234)  评论(0编辑  收藏  举报