判断javascript数组的方法
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数组的方法相关推荐
- 这是如何更好地利用JavaScript数组的方法
by pacdiv 由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here's how you can make better use of JavaScript arrays) ...
- JavaScript数组归并方法reduce
示例代码: <!DOCTYPE html> <html lang="zh"><head><meta charset="UTF-8 ...
- splice方法_[7000字]JavaScript数组所有方法基础总结
基础决定一个人的上限,很多时候我们感叹别人在实现一个功能时使用方法的精妙,并且反思,为什么别人想的出来自己却想不出来?我觉得主要是因为对于基础的掌握上有很大的差距.本文总结数组的所有方法的基础使用,希 ...
- JavaScript 数组遍历方法的对比
前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var ...
- JavaScript数组sort()方法小结
sort语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函数. 由于sort方法是先将数组元素转换为字符串进行比较,根据字符串首字符的ASCII码排序 ...
- JavaScript 数组去重方法合集(简洁易懂)
JavaScript数组去重 JavaScript去重的七种方法 简单易懂 方法一:暴力去重法 // 暴力去重法 function ArrayIsUnique (array) {if (!Array. ...
- JavaScript 数组filter方法完整介绍
数组过滤器方法是 JavaScript 中使用最广泛的方法之一. 它允许我们快速过滤出具有特定条件的数组中的元素. 因此,在本文中,您将了解有关过滤器方法及其各种用例的所有内容. 所以让我们开始吧. ...
- JavaScript 数组字符串方法
目录 1. 数组方法 1.1 原数组改变 Array.push() Array.unshift() Array.pop() Array.shift() Array.reverse() Array.so ...
- JavaScript 数组处理方法总结
数组处理方法 //定义数组 var array = []; undefined //查看类型 typeof(array); "object" //往数组里添加数据 array = ...
最新文章
- JavaScript(六)函数
- 数据蒋堂 | JOIN延伸 - 维度概念
- logstash配置文件
- CruiseControl日构建简单配置
- GDCM:gdcm::TagPath的测试程序
- 如何加快Json 序列化?有哪些方法?
- windows下caffe+CPUOnly实现MNIST手写分类
- KMP模式匹配 三(弦)
- python实现xml数据解析处理
- 蓝点中文Linux2.0 实验十三 进程与作业管理
- bootice添加linux_用BOOTICE工具在U盘上实现SYSLINUX与GRUB4DOS双启动 - 图文
- Word 2010如何对论文中参考文献进行标注
- 20160218.CCPP体系详解(0028天)
- PNP三极管的一个暗黑技巧
- Windows Server 2012 磁盘管理
- 1124 Raffle for Weibo Followers (20 分)
- PAT乙级练习题1030 完美数列
- Android关于分辨率的支持(QVGA,HVGA,WVGA,WXGA)
- Navicat连接Linux的MySQL出错排查
- linux:通过rpm包部署FTP服务
热门文章
- SQLServer2012自增列值跳跃的问题
- java对象深入理解
- 动态使用webservice,以及含有ref类型的参数的问题
- ceph rbdmap遇到的一个问题
- Linux视频教程系列汇总
- qt 启动画面显示图片_用QT实现软件启动画面的效果,学习参考!
- C++编程题,开心的小明
- EdgeGallery — AIO 离线部署 v1.5 版本
- Go 语言编程 — 内存分配
- [Nova ERROR] InternalError: Nova requires QEMU version 2.5.0 or greater.