最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript判断对象是否为数组_javascript技巧

来源:动视网 责编:小OO 时间:2020-11-27 21:47:35
文档

JavaScript判断对象是否为数组_javascript技巧

1.typeof;首先我们会想到的是使用typeof来检测数据类型,但是对于Function.String.Number.Undefined等这几种基本类型来说,使用typeof来检测都可以检测到,比如代码如下:function test(){}console.log(typeof 1);// numberconsole.log(typeof test);// function console.log(typeof "yunxi");// stringconsole.log(typeof undefined);// undefined。
推荐度:
导读1.typeof;首先我们会想到的是使用typeof来检测数据类型,但是对于Function.String.Number.Undefined等这几种基本类型来说,使用typeof来检测都可以检测到,比如代码如下:function test(){}console.log(typeof 1);// numberconsole.log(typeof test);// function console.log(typeof "yunxi");// stringconsole.log(typeof undefined);// undefined。


文中为大家分享了三种JavaScript判断对象是否为数组的方法,

1. typeof

首先我们会想到的是使用typeof来检测数据类型,但是对于Function, String, Number, Undefined等这几种基本类型来说,使用typeof来检测都可以检测到,比如代码如下:

function test(){}
console.log(typeof 1); // number
console.log(typeof test); // function 
console.log(typeof "yunxi"); // string
console.log(typeof undefined); // undefined

但是对于数组或者正则来说,使用typeof来检测的话,那就满足不了,因为当我们检测数组或者正则的话,那么返回的类型将会是一个对象object,如下代码所示:

2. Instanceof

由此我们很容易会想到使用instanceof来检测某个对象是否是数组的实例,该检测会返回一个布尔型(boolean),如果是数组的话,返回true,否则的话返回false;我们再来看下上面的检测是否为数组的代码如下:

如上可以看到使用instanceof确实可以判断是否为数组的列子;
3. constructor属性

在javascript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,比如判断未知对象的类型,因此我们可以如下写一个方法,代码如下:

如上可以看到,通过调用isArray 方法也可以判断是否为数组的列子。
我们现在可以看到,对于第二点和第三点分别使用instanceof方法和constructor属性貌似都可以来判断是否为数组了,但是也有列外情况,比如在跨框架iframe的时候使用页面中的数组时,会失败,因为在不同的框架iframe中,创建的数组是不会相互共享其prototype属性的;如下代码测试即可得到验证~

如上的方法我们都不能来判断一个对象是否为数组的方式; 但是我们在看ECMA262中可以看到,可以使用 Object.prototype.toString.call()方法来判断一个对象是否为数组;如下代码:

文档

JavaScript判断对象是否为数组_javascript技巧

1.typeof;首先我们会想到的是使用typeof来检测数据类型,但是对于Function.String.Number.Undefined等这几种基本类型来说,使用typeof来检测都可以检测到,比如代码如下:function test(){}console.log(typeof 1);// numberconsole.log(typeof test);// function console.log(typeof "yunxi");// stringconsole.log(typeof undefined);// undefined。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top