js判断是否是数组几种方法(Es6新增方法判断是否为数组)

 分类:js知识时间:2022-05-15点击: 2022前端视频教程(自学必看)

用js判断一个变量是否为数组的方法,有很多种方法本文讲解6种方法,ES6为我们提供了Array.isArray() 方法更加简单高效地判断是否是数组,如果返回值是数组,则为 true,否则为 false。其他5种方法可以了解下,强烈推荐使用Array.isArray() 方法来判断是否是数组,使用简单方便。

js判断是否是数组几种方法

1、Array.isArray方法(推荐)

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

 说明:Array.isArray() 方法是ES6提供的新增方法,更加简单高效地判断 JS 对象是否为数组,如果值是 Array,则为 true; 否则为 false。

2、instanceof 方法

let arr = [1,2,3]
console.log(arr instanceof Array)  //true

说明:instanceof方法是通过原型去判断

3、__proto__方法

let arr = [1,2,3]
console.log(arr.__proto__ === Array.prototype) //true

说明:__proto__方法是通过原型去判断

4、constructor方法

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

说明:constructor方法是通过原型去判断

5、Object.prototype.toString方法

let arr = [1,2,3]
let flag = Object.prototype.toString.call(arr) === '[object Array]'
console.log(flag) //true

说明:Object.prototype.toString方法通过object类型的副属性class去判断的,其中数组的class是Array,结果是[object Array], 普通的对象是Object,结果是[object Object]

6、typeof方法

let arr = [1,2,3]
console.log(typeof arr)  //object

说明:用typeof方法返回object,数组也是对象没错,但用typeof方法来判断是否为数组是很不准确的,typeof方法只适合拿来判断简单数据类型,非常不推荐使用它来判断是否为数组

除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址: