Javascript-判断是否为数组的5种方法

Javascript-判断是否为数组的5种方法判断是否为数组的5种方法1instanceof2constructor3Array.isArray()最推荐方法4typeof5Object.prototype.toSrtring.call()总结vararr=[1,1,1,1]vara=’2323’varb={name:’xiao’,age:12}varn=11instanceof1instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

var arr= [1,1,1,1]
var a = '2323'
var b =  { 
   name:'xiao',age:12}
var n = 1

Jetbrains全家桶1年46,售后保障稳定

1 instanceof

1 instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值。
注意的是,prototype属性是可以修改的,所以并不是最初判断为true就一定永远为真。

console.log('方法1',arr instanceof Array); //如果是数组 打印结果为 true

2 constructor

实例的构造函数属性constructor指向构造函数,那么通过constructor属性也可以判断是否为一个数组。
这种判断也会存在多个全局环境的问题,导致的问题与instanceof相同。

console.log('方法2',arr.constructor === Array);//true

3 Array.isArray() 最推荐方法

同样能准确判断,但有个问题,Array.isArray() 是在ES5中提出,也就是说在ES5之前可能会存在不支持此方法的情况。

console.log('方法3',Array.isArray(arr)); //true

4 typeof

使用该方法 判断数组时 打印结果为object

console.log('方法4',typeof n); //number
console.log('方法4',typeof(b)) //object

5 Object.prototype.toSrtring.call()

当使用该方法判断其他数据类型时要注意一点是,IE8及IE8以下,undefined和null均为Object,IE9及IE9以上为[object Undefined]和[object Null]

console.log(Object.prototype.toString.call(arr).indexOf('Array') !== -1); //true
console.log(Object.prototype.toString.call(arr) === '[object Array]');    //true

总结

个人学习过程中的方法总结,欢迎大家留言或者私信给出建议,我会及时更正,谢谢大家。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224128.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx反向代理数据库端口安全吗(nginx反向代理80端口)

    nginx反向代理数据库端口使用场景如下:当数据库在服务器A并且处于外网无法直接访问时,此时同局域网下只有服务器B提供对外访问,客户能访问b却无法访问A的情况下,由于两台服务器处于同局域网,并且服务器A有端口是开放的,可以在服务器B内进行nginx反向代理安装nginx首先在服务器b内,安装nginx(docker化的也可以)如果是docker的nginx需要进入docker内的nginxdockerexec-it容器idbash一般nginx的配置文件在e

    2022年4月9日
    45
  • Java泛型深入理解「建议收藏」

    Java泛型深入理解「建议收藏」Java泛型,包括Java泛型的实现,泛型擦除以及相关面试题,通配符理解

    2022年6月23日
    16
  • Matlab赋值_matlab二维数组赋值

    Matlab赋值_matlab二维数组赋值clear;clc;x=[23457810111415161819];y=[106。42108。26109。58109。5110109。93110。49110。59110。6110。9110。76111111。2];x3=min(x):0。1:max(x);%可以放在循环外%v=zeros(3,6);没有必要,需要的话可以,v=[];forn=1:…

    2022年9月27日
    0
  • win10下deepfakes环境配置(一)- 软件安装

    win10下deepfakes环境配置(一)- 软件安装Deepfakes环境配置以下以64位Win10环境下(win7不能使用Openfaceswap,请参考faceswap),Openfaceswap为例,零编程基础学习deepfakes的环境搭配。Openfaceswap简介Openfaceswap基于开源软件Faceswap而定制的图形界面版本,Faceswap地址(最新版已经集成GUI版本,有动力能力的可以到Githu…

    2022年5月9日
    90
  • mysql 类型长度_数据库decimal类型长度

    mysql 类型长度_数据库decimal类型长度1个字节=8位tinyint为一个字节2的8次方=256所以最多存储到256日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:2014-09-18time3字节,时间,格式:08:42:30datetime8字节,日期时间,格式:2014-09-1808:42:30timestamp4字节,自动存储记录修改的时间year1字节,年份数值数据类型整型MySQL数据…

    2022年9月17日
    0
  • Springboot自定义注解,支持SPEL表达式

    Springboot自定义注解,支持SPEL表达式举例,自定义redis模糊删除注解1.自定义注解importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Target(E…

    2025年6月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号