判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。

先举几个例子:
var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};
1、最常见的判断方法:typeof
alert(typeof a) ------------> string alert(typeof b) ------------> number alert(typeof c) ------------> object alert(typeof d) ------------> object alert(typeof e) ------------> function alert(typeof f) ------------> function
其中typeof返回的类型都是字符串形式,需注意,例如:
alert(typeof a == "string") -------------> true alert(typeof a == String) ---------------> false
另外typeof 可以判断function的类型;在判断除Object类型的对象时比较方便。
2、判断已知对象类型的方法: instanceof
alert(c instanceof Array) ---------------> true alert(d instanceof Date) alert(f instanceof Function) ------------> true alert(f instanceof function) ------------> false
注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
3、根据对象的constructor判断: constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true
注意: constructor 在类继承时会出错
eg:
function A(){};
function B(){};
A.prototype = new B(); //A继承自B
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;
而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:
alert(aobj instanceof B) ----------------> true; alert(aobj instanceof B) ----------------> true;
言归正传,解决construtor的问题通常是让对象的constructor手动指向自己:
aobj.constructor = A; //将自己的类赋值给对象的constructor属性 alert(aobj.constructor === A) -----------> true; alert(aobj.constructor === B) -----------> false; //基类不会报true了;
4、通用但很繁琐的方法: prototype
alert(Object.prototype.toString.call(a) === ‘[object String]') -------> true; alert(Object.prototype.toString.call(b) === ‘[object Number]') -------> true; alert(Object.prototype.toString.call(c) === ‘[object Array]') -------> true; alert(Object.prototype.toString.call(d) === ‘[object Date]') -------> true; alert(Object.prototype.toString.call(e) === ‘[object Function]') -------> true; alert(Object.prototype.toString.call(f) === ‘[object Function]') -------> true;
大小写不能写错,比较麻烦,但胜在通用。
5、无敌万能的方法:jquery.type()
如果对象是undefined或null,则返回相应的“undefined”或“null”。
jQuery.type( undefined ) === "undefined" jQuery.type() === "undefined" jQuery.type( window.notDefined ) === "undefined" jQuery.type( null ) === "null"
如果对象有一个内部的[[Class]]和一个浏览器的内置对象的 [[Class]] 相同,我们返回相应的 [[Class]] 名字。 (有关此技术的更多细节。 )
jQuery.type( true ) === "boolean"
jQuery.type( 3 ) === "number"
jQuery.type( "test" ) === "string"
jQuery.type( function(){} ) === "function"
jQuery.type( [] ) === "array"
jQuery.type( new Date() ) === "date"
jQuery.type( new Error() ) === "error" // as of jQuery 1.9
jQuery.type( /test/ ) === "regexp"
其他一切都将返回它的类型“object”。
通常情况下用typeof 判断就可以了,遇到预知Object类型的情况可以选用instanceof或constructor方法,实在没辙就使用$.type()方法。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 判断
# 数据类型
# js 判断各种数据类型的简单方法(推荐)
# js的各种数据类型判断的介绍
# JS中的四种数据类型判断方法
# 利用JS判断数据类型的四种方法
# JavaScript中判断数据类型的方法总结
# JavaScript 判断数据类型的4种方法
# js和jquery判断数据类型的4种方法总结
# JS数据类型判断的几种常用方法
# 在JS中判断数据类型的方式有哪些简单示例
# 会报
# 自己的
# 都是
# 几种方法
# 几个
# 一切都
# 言归正传
# 最常见
# 就可以
# 但很
# 有一个
# 需注意
# 情况下
# alert
# function
# strong
# Date
# number
# object
# brush
相关文章:
北京专业网站制作设计师招聘,北京白云观官方网站?
css网站制作参考文献有哪些,易聊怎么注册?
建站主机数据库如何配置才能提升网站性能?
如何在七牛云存储上搭建网站并设置自定义域名?
大连 网站制作,大连天途有线官网?
建站之星安装路径如何正确选择及配置?
如何配置IIS站点权限与局域网访问?
c# 在高并发场景下,委托和接口调用的性能对比
建站与域名管理如何高效结合?
建站主机如何安装配置?新手必看操作指南
已有域名如何免费搭建网站?
如何访问已购建站主机并解决登录问题?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
如何选择网络建站服务器?高效建站必看指南
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
音响网站制作视频教程,隆霸音响官方网站?
智能起名网站制作软件有哪些,制作logo的软件?
如何通过服务器快速搭建网站?完整步骤解析
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何快速搭建FTP站点实现文件共享?
如何挑选高效建站主机与优质域名?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何配置FTP站点权限与安全设置?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
如何快速生成专业多端适配建站电话?
实例解析angularjs的filter过滤器
建站之星如何实现网站加密操作?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何制作算命网站,怎么注册算命网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
如何用西部建站助手快速创建专业网站?
小型网站建站如何选择虚拟主机?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
,网页ppt怎么弄成自己的ppt?
如何选择高效便捷的WAP商城建站系统?
建站之星会员如何解锁更多建站功能?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何在万网自助建站中设置域名及备案?
代刷网站制作软件,别人代刷火车票靠谱吗?
如何选择适配移动端的WAP自助建站平台?
制作网站公司那家好,网络公司是做什么的?
建站主机CVM配置优化、SEO策略与性能提升指南
如何构建满足综合性能需求的优质建站方案?
建站之星展会模版如何一键下载生成?
如何用美橙互联一键搭建多站合一网站?
如何基于云服务器快速搭建网站及云盘系统?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。