如何通过JS判断一个数组
前言
如何通过 js 判断一个数组,在面试中我们常常会遇到这个问题,本章主要基于几种判断方式及原理带大家了解如何通过 js 判断一个数组。
1. instanceof
instanceof
用于检测构造函数的 prototype
属性是否在实例对象的原型链上。如果存在就返回 true
;否则返回 false
。
HTML代码
var arr = [];
arr instanceof Array; // true
2. constructor
大家都知道,实例的构造函数属性 constructor
指向构造函数,那么通过 constructor
属性也可以判断是否为一个数组。
HTML代码
var arr = [];
arr.constructor == Array; //true
3. Array.isArray()
Array.isArray()
用于确定传递的值是否是一个数组,返回一个布尔值。如果 是数组返回 true
;否则返回 false
。
HTML代码
var a = new Array(123);
var b = new Date();
console.log(Array.isArray(a)); //true
console.log(Array.isArray(b)); //false
4. object.prototype.tostring.call()
通过 tostring
判断,每个对象都可以通过 object.prototype.tostring.call()
来检测。
HTML代码
let a = [1,2,3]
Object.prototype.toString.call(a) === '[object Array]';//true
object.prototype.tostring.call()
强大的地方在于它不仅仅可以检验是否为数组,还可以检测是否为函数,是否是数字等等。
//检验是否是函数
let a = function () {};
Object.prototype.toString.call(a) === '[object Function]';//true
//检验是否是数字
let b = 1;
Object.prototype.toString.call(b) === '[object Number]';//true
以上就是今天的全部内容啦,我们下期再见!
评论