JavaScript中判断数据类型的几种方法
2017-08-07 22:32
706 查看
原文链接:http://www.jb51.net/article/102972.htm
判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。
先举几个例子:
?
1、最常见的判断方法:typeof
?
其中typeof返回的类型都是字符串形式,需注意,例如:
?
另外typeof 可以判断function的类型;在判断除Object类型的对象时比较方便。
2、判断已知对象类型的方法: instanceof
?
注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
3、根据对象的constructor判断: constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注意: constructor 在类继承时会出错
eg:
?
而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:
?
言归正传,解决construtor的问题通常是让对象的constructor手动指向自己:
?
4、通用但很繁琐的方法: prototype
?
大小写不能写错,比较麻烦,但胜在通用。
5、无敌万能的方法:jquery.type()
如果对象是undefined或null,则返回相应的“undefined”或“null”。
?
如果对象有一个内部的[[Class]]和一个浏览器的内置对象的 [[Class]] 相同,我们返回相应的 [[Class]] 名字。 (有关此技术的更多细节。 )
?
其他一切都将返回它的类型“object”。
通常情况下用typeof 判断就可以了,遇到预知Object类型的情况可以选用instanceof或constructor方法,实在没辙就使用$.type()方法。
判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。
先举几个例子:
?
?
?
2、判断已知对象类型的方法: instanceof
?
3、根据对象的constructor判断: constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注意: constructor 在类继承时会出错
eg:
?
?
?
?
5、无敌万能的方法:jquery.type()
如果对象是undefined或null,则返回相应的“undefined”或“null”。
?
?
通常情况下用typeof 判断就可以了,遇到预知Object类型的情况可以选用instanceof或constructor方法,实在没辙就使用$.type()方法。
相关文章推荐
- JavaScript之如何判断数据类型的几种方法
- 转:Flex判断数据类型的几种方法
- 判断js中的数据类型的几种方法
- 关于JavaScript的变量的数据类型的判断方法
- JavaScript中对象类型判断的几种方法
- JavaScript中判断对象类型的几种方法总结
- 判断js中的数据类型的几种方法
- Js中数据类型判断的几种方法
- flex 判断数据类型的几种方法
- 转:Flex判断数据类型的几种方法
- javascript各种数据类型判断方法
- JavaScript中对象类型判断的几种方法
- js 判断数据类型的几种方法
- flex判断数据类型的几种方法
- isArray()函数(JavaScript中对象类型判断的几种方法)
- isArray()函数(JavaScript中对象类型判断的几种方法)
- javascript封装判断全数据类型方法, toString方法, 对象的枚举(in, instanceof, hasOwnProperty的用法), arguments类数组属性
- JavaScript数据类型判断--使用toString方法
- javascript中的基本数据类型以及类型检测的几种方法
- 关于JavaScript的变量的数据类型的判断方法