如何判断一个对象为数组
来源:互联网 发布:网络的利与弊作文800 编辑:程序博客网 时间:2024/06/05 09:57
1.用Array对象isArray方法来判断
不得不承认这是一个超级简单又好用的方法,参数是数组时返回true,不是数组时则返回false
var a=[];Array.isArray(a) //返回truevar b='hello world';Array.isArray(b) //返回false
2.用instanceof判断
var a=[];console.log(a instanceof Array) //返回trueconsole.log(a instanceof Object) //同样也返回true
使用instanceof来判断存在一个问题,因为数组也是对象,所以,如果判断是否为数组时应当用Array来判断
3.判断是否存在数组上的方法,比如push,splice,length等
var a=[];a.push('e'); //返回1var b={};console.log(b.push('e')) // 报错:b.push is not a function
4.用toString方法,这个方法可以判断所有类型,麻烦但是很通用
可以判断的类型包括:String、Number、Boolean、Undefined、Null、Function、Date、Array、RegExp、Error、HTMLDocument 等, 基本上,所有的数据类型都可以通过这个方法获取到。
function isType(data,type) { return Object.prototype.toString.call(data) === "[object "+type+"]";}
注意的问题:必须通过 call 或 apply 来调用,而不能直接调用 toString !!!!
从原型链的角度讲,所有对象的原型链最终都指向了 Object, 按照JS变量查找规则,其他对象应该也可以直接访问到 Object 的 toString方法,而事实上,大部分的对象都实现了自身的 toString 方法,这样就可能会导致 Object 的 toString 被终止查找,因此要用 call或apply 来强制调用Object 的 toString 方法。
5.constructor方法
var a=[];a.constructor==Array; //返回true
通用的判断方法
function isArray(object) {return object && typeof object === 'object' && Array == object.constructor;}
6.jquery.type() 这是jquery当中的方法
- 1.如果对象是undefined或null,则返回相应的“undefined”或“null”。
- 2.如果对象有一个内部的[[Class]]和一个浏览器的内置对象的 [[Class]] 相同,我们返回相应的 [[Class]] 名字
- 3.其他一切都将返回它的类型“object”。
jQuery.type( [] ) === "array"jQuery.type( undefined ) === "undefined"jQuery.type() === "undefined"jQuery.type( window.notDefined ) === "undefined"jQuery.type( null ) === "null"jQuery.type( true ) === "boolean"jQuery.type( 3 ) === "number"jQuery.type( "test" ) === "string"jQuery.type( function(){} ) === "function"jQuery.type( new Date() ) === "date"jQuery.type( /test/ ) === "regexp"
阅读全文
0 0
- 如何判断一个对象为数组
- Js中如何判断一个对象为数组类型
- 判断一个对象是否为数组
- 克隆一个对象和判断一个对象是否为数组
- js如何判断一个对象为空
- JS如何判断一个对象为空
- 如何判断一个对象是不是为空
- JS如何判断一个对象为空
- JS如何判断一个对象为空
- js 如何判断一个对象是不是数组
- 如何判断一个对象是不是数组?--xyp_hf
- 如何判断一个对象是否为jquery对象
- 如何判断一个对象是否为jquery对象
- JavaScript 如何判断一个对象{}是否为空对象
- 判断一个对象是否为数组的方法
- js判断一个对象为数组的方法
- 判断一个数组为[]或者对象是{}
- javascript如何判断参数为一个数组类型
- 搭建环境(三)Ubuntu14.04 安装cudnn-v6.0
- [分享]豪杰超级DVD播放器Ⅲ破解之菜鸟了解PE文件
- Erlang复合数据结构基础之元组与列表
- binlog日志详解释
- Kafka内核中的分布式机制实现
- 如何判断一个对象为数组
- Entity Framework返回IEnumerable还是IQueryable?
- Sleep实现
- linux centos7之后关闭防火墙方法改变。
- js函数中参数的传递
- RecyclerView简单的实例
- JSP的生命周期和工作原理
- 数据库语言
- scala 样本类 Case Classes