iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >判断一个变量是数组Array类型的方法
  • 887
分享到

判断一个变量是数组Array类型的方法

判断变量数组Array类型 2022-11-15 22:11:59 887人浏览 安东尼
摘要

在很多时候,我们都需要对一个变量进行数组类型的判断。javascript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助。 JavaSc

在很多时候,我们都需要对一个变量进行数组类型的判断。javascript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助。

JavaScript中检测对象的方法
1.typeof操作符
这种方法对于一些常用的类型来说那算是毫无压力,比如Function、String、Number、Undefined等,但是要是检测Array的对象就不起作用了。

alert(typeof null); // "object"
alert(typeof function () {
return 1;
}); // "function"
alert(typeof '梦龙小站'); // "string"
alert(typeof 1); // "number"
alert(typeof a); // "undefined"
alert(typeof undefined); // "undefined"
alert(typeof []); // "object"

2.instanceof操作符
这个操作符和JavaScript中面向对象有点关系,了解这个就先得了解JavaScript中的面向对象。因为这个操作符是检测对象的原型链是否指向构造函数的prototype对象的。
var arr = [1,2,3,1];
alert(arr instanceof Array); // true
3.对象的constructor属性
除了instanceof,每个对象还有constructor的属性,利用它似乎也能进行Array的判断。

var arr = [1,2,3,1];
alert(arr.constructor === Array); // true

第2种和第3种方法貌似无懈可击,但是实际上还是有些漏洞的,当你在多个frame中来回穿梭的时候,这两种方法就亚历山大了。由于每个iframe都有一套自己的执行环境,跨frame实例化的对象彼此是不共享原型链的,因此导致上述检测代码失效!

var iframe = document.createElement('iframe'); //创建iframe
document.body.appendChild(iframe); //添加到body中
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // 声明数组[1,2,3]
alert(arr instanceof Array); // false
alert(arr.constructor === Array); // false

检测数组类型方法
以上那些方法看上去无懈可击,但是终究会有些问题,接下来向大家提供一些比较不错的方法,可以说是无懈可击了。
1.Object.prototype.toString
Object.prototype.toString的行为:首先,取得对象的一个内部属性[[Class]],然后依据这个属性,返回一个类似于"[object Array]"的字符串作为结果(看过ECMA标准的应该都知道,[[]]用来表示语言内部用到的、外部不可直接访问的属性,称为“内部属性”)。利用这 个方法,再配合call,我们可以取得任何对象的内部属性[[Class]],然后把类型检测转化为字符串比较,以达到我们的目的。

function isArrayFn (o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
var arr = [1,2,3,1];
alert(isArrayFn(arr));// true

call改变toString的this引用为待检测的对象,返回此对象的字符串表示,然后对比此字符串是否是'[object Array]',以判断其是否是Array的实例。为什么不直接o.toString()?嗯,虽然Array继承自Object,也会有 toString方法,但是这个方法有可能会被改写而达不到我们的要求,而Object.prototype则是老虎的屁股,很少有人敢去碰它的,所以能一定程度保证其“纯洁性”:)

JavaScript 标准文档中定义: [[Class]] 的值只可能是下面字符串中的一个: Arguments, Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String.
这种方法在识别内置对象时往往十分有用,但对于自定义对象请不要使用这种方法。
2.Array.isArray()
ECMAScript5将Array.isArray()正式引入JavaScript,目的就是准确地检测一个值是否为数组。IE9+、 Firefox 4+、Safari 5+、Opera 10.5+和Chrome都实现了这个方法。但是在IE8之前的版本是不支持的。
3.较好参考
综合上面的几种方法,有一个当前的判断数组的最佳写法:

var arr = [1,2,3,1];
var arr2 = [{ abac : 1, abc : 2 }];
function isArrayFn(value){
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}else{
return Object.prototype.toString.call(value) === "[object Array]";
}
}
alert(isArrayFn(arr));// true
alert(isArrayFn(arr2));// true

JavaScript中如何判断一个变量是数组Array类型呢?以上便是我为大家分享的JavaScript中判断一个变量是数组Array类型的方法,希望能对大家有所帮助。

--结束END--

本文标题: 判断一个变量是数组Array类型的方法

本文链接: https://www.lsjlt.com/news/172572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 判断一个变量是数组Array类型的方法
    在很多时候,我们都需要对一个变量进行数组类型的判断。JavaScript中如何判断一个变量是数组Array类型呢我最近研究了一下,并分享给大家,希望能对大家有所帮助。 JavaScr...
    99+
    2022-11-15
    判断变量 数组Array类型
  • php如何判断一个变量是否为数组
    在php中使用is_array()函数判断一个变量是否为数组,具体方法如下:is_array()函数作用:php中is_array()函数的作用是用于检测变量是否是一个数组。is_array()函数语法:bool is_array...
    99+
    2024-04-02
  • es6如何判断一个变量是否为数组
    这篇文章主要讲解了“es6如何判断一个变量是否为数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“es6如何判断一个变量是否为数组”吧!判断方法:1、利用Array对象的isArray()函...
    99+
    2023-07-05
  • php中如何判断一个变量是否为数组中
    在PHP中,有多种方式可以判断一个变量是否为数组类型,下面就是其中几个使用频率较高的方法。 方法一:使用is_array()函数is_array()函数是PHP中判断一个变量是否为数组类型最常用的函数之一。这个函数接受一个参数,它会判断这个...
    99+
    2023-05-23
  • php 判断变量是否是数组
    在PHP中,有时候需要判断一个变量是否是数组。这个判断对于程序的正确执行非常关键,因此需要特别注意。在PHP中,判断一个变量是否是数组可以使用is_array函数,该函数的使用非常简单,只需要将要判断的变量传入该函数中即可。示例代码如下:$...
    99+
    2023-05-19
  • Python判断一个变量是否存在
    在调用一个变量的时候,如果这个变量没有被定义,那么python会报错。要解决的方法也很简单,就是事先给变量赋一个空值。但是也可以通过调用系统的内置函数来判断一个变量名是否已经被定义了。有3个内置函数都可以实现。res1 = 'test' i...
    99+
    2023-01-31
    变量 是否存在 Python
  • es6如何判断变量是不是数组
    小编给大家分享一下es6如何判断变量是不是数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在es...
    99+
    2024-04-02
  • javascript判断是否为数字类型的方法
    小编给大家分享一下javascript判断是否为数字类型的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法:1、利用typeof关键字和isNaN()函数判断;2、利用typeof关键字和isFinite()函数判断...
    99+
    2023-06-14
  • 聊聊php判断一个数组是否为空的方法
    PHP是一种广泛使用的开源脚本语言,许多网站都使用PHP作为后端语言。在PHP中,处理数组是一项基本任务,其中判断一个数组是否为空是一个非常常见的需求。本文将介绍如何使用PHP语言来判断一个数组是否为空。首先,让我们看一下如何创建一个空数组...
    99+
    2023-05-14
  • c语言怎么判断变量数据类型
    在C语言中,可以使用`sizeof`运算符来判断变量的数据类型。`sizeof`运算符返回变量或数据类型的大小(以字节为单位)。 例...
    99+
    2023-10-28
    c语言
  • 如何在 PHP 函数中判断变量类型?
    php 中可以通过 gettype() 函数获取变量类型,该函数返回字符串形式的类型信息,如 string、integer 等。另外,is_* 函数系列可用于判断特定类型,如 is_st...
    99+
    2024-04-17
    php 判断变量类型
  • 如何正确判断变量google.protobuf.Any的类型?
    php小编鱼仔今天要为大家介绍一个关于变量google.protobuf.Any类型的判断方法。在开发过程中,我们经常会遇到需要判断变量类型的情况,而对于google.protobuf...
    99+
    2024-02-09
  • javascript中判断数据类型的方法
    这篇文章主要介绍了javascript中判断数据类型的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js判断数据类型的方法:1、利用typeof操作符,语法“typeof...
    99+
    2023-06-15
  • jquery如何判断一个变量是否为空
    本篇内容主要讲解“jquery如何判断一个变量是否为空”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何判断一个变量是否为空”吧!jquery判断一个变量是否为空的方法:1、创建一个...
    99+
    2023-07-05
  • javascript判断变量是否相等的方法
    这篇文章主要介绍javascript判断变量是否相等的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!判断方法:1、利用相等运算符“==”或者“===”;2、利用数组中的toString()方法;3、利用“Obje...
    99+
    2023-06-14
  • jquery怎么判断一个变量是否为空
    本教程操作环境:Windows10系统、jquery3.2.1、Dell G3电脑。jquery怎么判断一个变量是否为空?JQuery判断是否为空//有如下三种判断 var A=$("#**).val(); if(A==null|...
    99+
    2023-05-14
    jquery 变量
  • JavaScript中判断函数、变量是否存在的方法
    这篇文章主要介绍了JavaScript中判断函数、变量是否存在的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript中判断函数、变量是否存在的方法:1、判断...
    99+
    2023-06-14
  • jquery如何判断是否是一个数组
    这篇文章主要介绍了jquery如何判断是否是一个数组的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery如何判断是否是一个数组文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • JavaScript判断一个对象是否为数组的方法有哪些
    这篇文章主要介绍了JavaScript判断一个对象是否为数组的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在 JS 中使用数组是一种常见操作,有时在开发中,获得一...
    99+
    2023-06-14
  • 第十八天- 类型判断 函数和方法判断 反
      # isinstance type issubclass 内置函数:# 1.issubclass() 这个内置函数可判断xxx类是否是yyy类型的子类# issubclass(子类,父类) 1 class Base: 2...
    99+
    2023-01-30
    函数 类型 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作