如何通过JS判断一个数组

EILY

共 3020字,需浏览 7分钟

 ·

2023-08-27 07:47

前言

如何通过 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
                              
                            
e90692b14c7043f1837f21909c6104ef.webp

以上就是今天的全部内容啦,我们下期再见!

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报