2019独角兽企业重金招聘Python工程师标准>>>

判断javascript数组的方法

var is_array=function(){  return value &&  typeof value==='object' &&  value.constructor===Array;
}

我们知道,javascript是一种弱类型的语言,并且,javascript中的一切实质上都是对象。那么,在javascript中如何进行对象的类型检查将是一个非常重要的话题。

这里,我将介绍两种在js中经常使用的用于类型检测的方法。

第一种方法是使用"typeof"操作符,这种方法可能大家都知道。使用它来进行类型检测的结果是下列六个字符串中的其中一个:"number","boolean","object","number","function","string"。不错,使用这个操作符,绝大部分的对象类型我们都可以检测到,但是,这里有一个例外:那就是在使用数组的时候。javascript本身对于数组和对象的区别是混乱的,typeof运算符报告数组和对象的类型都是"object",因此,javascript在区别数组和对象的方式上并没有yield好的机制。

例如:

var arr=[1,2,3,4,5]  var obj={"name":"xiaoming","sex":"nan"};  alert(typeof arr)//返回"object"  alert(typeof obj)//返回"object"

那么,我们该如何判别这种特殊的情况呢?

这里,便是我要讲到的第二种常用的进行类型检查的方式:"constructor"属性。

在javascript中,任何对象都有一个constructor属性,它引用的是用来构造该对象的原始函数。

下面一段示例代码说明了这种方式的用法:

var num=11,str="abc",obj={num:11},arr=[1,2,3];  alert(num.constructor===Number);//true  alert(str.constructor===String);//true  alert(obj.constructor===Object);//true  alert(arr.constructor===Array);//true

可以看到,使用constructor时,数组返回的不再是object,而是具有鲜明意义的Array。

下表展示了使用上述两种方式对不同类型对象进行类型检查的结果。

变量                      typeof变量                       变量.construtor
{an:"object"}             object                                Object
["an","array"]            object                                Array
function(){}              function                              Function
"a string"                string                                 String
55                        number                                 Number
true                      boolean                                Boolean
new User()                object                                 User

这里需要注意的是,typeof运算符返回的结果是一个字符串;而constructor属性返回的结果是一个对象

转载于:https://my.oschina.net/xiaoyangok/blog/136144

判断javascript数组的方法相关推荐

  1. 这是如何更好地利用JavaScript数组的方法

    by pacdiv 由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here's how you can make better use of JavaScript arrays) ...

  2. JavaScript数组归并方法reduce

    示例代码: <!DOCTYPE html> <html lang="zh"><head><meta charset="UTF-8 ...

  3. splice方法_[7000字]JavaScript数组所有方法基础总结

    基础决定一个人的上限,很多时候我们感叹别人在实现一个功能时使用方法的精妙,并且反思,为什么别人想的出来自己却想不出来?我觉得主要是因为对于基础的掌握上有很大的差距.本文总结数组的所有方法的基础使用,希 ...

  4. JavaScript 数组遍历方法的对比

    前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var ...

  5. JavaScript数组sort()方法小结

    sort语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函数. 由于sort方法是先将数组元素转换为字符串进行比较,根据字符串首字符的ASCII码排序 ...

  6. JavaScript 数组去重方法合集(简洁易懂)

    JavaScript数组去重 JavaScript去重的七种方法 简单易懂 方法一:暴力去重法 // 暴力去重法 function ArrayIsUnique (array) {if (!Array. ...

  7. JavaScript 数组filter方法完整介绍

    数组过滤器方法是 JavaScript 中使用最广泛的方法之一. 它允许我们快速过滤出具有特定条件的数组中的元素. 因此,在本文中,您将了解有关过滤器方法及其各种用例的所有内容. 所以让我们开始吧. ...

  8. JavaScript 数组字符串方法

    目录 1. 数组方法 1.1 原数组改变 Array.push() Array.unshift() Array.pop() Array.shift() Array.reverse() Array.so ...

  9. JavaScript 数组处理方法总结

    数组处理方法 //定义数组 var array = []; undefined //查看类型 typeof(array); "object" //往数组里添加数据 array = ...

最新文章

  1. JavaScript(六)函数
  2. 数据蒋堂 | JOIN延伸 - 维度概念
  3. logstash配置文件
  4. CruiseControl日构建简单配置
  5. GDCM:gdcm::TagPath的测试程序
  6. 如何加快Json 序列化?有哪些方法?
  7. windows下caffe+CPUOnly实现MNIST手写分类
  8. KMP模式匹配 三(弦)
  9. python实现xml数据解析处理
  10. 蓝点中文Linux2.0 实验十三 进程与作业管理
  11. bootice添加linux_用BOOTICE工具在U盘上实现SYSLINUX与GRUB4DOS双启动 - 图文
  12. Word 2010如何对论文中参考文献进行标注
  13. 20160218.CCPP体系详解(0028天)
  14. PNP三极管的一个暗黑技巧
  15. Windows Server 2012 磁盘管理
  16. 1124 Raffle for Weibo Followers (20 分)
  17. PAT乙级练习题1030 完美数列
  18. Android关于分辨率的支持(QVGA,HVGA,WVGA,WXGA)
  19. Navicat连接Linux的MySQL出错排查
  20. linux:通过rpm包部署FTP服务

热门文章

  1. SQLServer2012自增列值跳跃的问题
  2. java对象深入理解
  3. 动态使用webservice,以及含有ref类型的参数的问题
  4. ceph rbdmap遇到的一个问题
  5. Linux视频教程系列汇总
  6. qt 启动画面显示图片_用QT实现软件启动画面的效果,学习参考!
  7. C++编程题,开心的小明
  8. EdgeGallery — AIO 离线部署 v1.5 版本
  9. Go 语言编程 — 内存分配
  10. [Nova ERROR] InternalError: Nova requires QEMU version 2.5.0 or greater.