最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
js 判断是否为数组详解
时间:2022-11-14 22:02:43 编辑:袖梨 来源:一聚教程网
判断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
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22