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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js怎么让指定方法先后顺序_jquery固定table表头

    js怎么让指定方法先后顺序_jquery固定table表头当时遇见这个问题是医院手麻系统大批量数据展示,由于是旧项目系统没有使用到前端的架构只能使用JQ,JS,css完成也谢谢给予我支持的同行们固定首行数据:采用函数的方式进行JQ/***

    2022年8月2日
    11
  • centOS压缩和解压命令之bz2「建议收藏」

    centOS压缩和解压命令之bz2「建议收藏」.bz2压缩文件格式1:bzip2源文件压缩为.bz2格式,不保留源文件格式2:bzip2-k源文件压缩之后保留源文件注意:bzip2命令不能压缩目录.bz2解压格式1:bzip2-d压缩文件:压缩文件消失格式2:bunzip2压缩文件解压缩,-k保留压缩文件

    2022年5月11日
    62
  • win10 卸载cuda

    win10 卸载cuda1.首先对于cuda8.0、cuda7.5的卸载都可以兼容安装cuda9.0之后,电脑原来的NVIDIA图形驱动会被更新,NVIDIAPhysx系统软件也会被更新(安装低版cuda可能不会被更新)。卸载时候要注意了,别动这2个。2.卸载1.前言杀毒软件别用来卸载这个了,不好找。打开电脑的控制面板,找到程序,卸载程序点击当天安装的时间,会找到刚才装的cuda软件,也包括以前N…

    2022年6月15日
    481
  • Oracle 11g下载及安装

    Oracle 11g下载及安装Oracle11g下载及安装前言Oracle11g下载Oracle11g安装1.引入库2.读入数据总结前言因为笔者公司所用数据库是oracle,新同事来了都会习惯下重装电脑,所以记录下oracle的下载及安装。Oracle11g下载进入oracle官网,看到如下视图,点击进入oracle官网点击Products,选择OracleDatabase此时进入oracle数据库的详情页面,选择一个长期发行版本进行下载,此时长期发行的版本为19c选择下载19c的下载按钮,进入下载

    2022年5月29日
    37
  • pycharm运行不了程序_如何完全卸载pycharm

    pycharm运行不了程序_如何完全卸载pycharm在尝试了各种常规操作后,均无法打开,最后终于解决了!!!现在cmd中输入pycharm报错OpenJDK64-BitServerVMwarning:OptionUseConcMarkSweepGCwasdeprecatedinversion9.0andwilllikelyberemovedinafuturerelease.ErroroccurredduringinitializationofVMInitialheapsizesettoa

    2022年8月29日
    5
  • java构造函数可以重载么_Java 构造函数和函数重载「建议收藏」

    java构造函数可以重载么_Java 构造函数和函数重载「建议收藏」构造函数:⑴方法名和类名相同,而且没有返回类型(包括void也没有);⑵没有返回值;⑶如果没有输入构造函数,jvm会自动帮我们创建一个不带参数,没有任何函数体的的构造函数;如果我们手动的创建了其他构造函数,就不会帮我们创建这个不带参数的构造函数了;⑷一般情况下,如果想要实现自己的构造方法,最好重载一个不带参数的构造方法。函数重载:指多个函数可以使用同一个函数名,只要它们参数列表不同,将意义相近…

    2022年6月18日
    49

发表回复

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

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