首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >javascript 数据类型的判断

javascript 数据类型的判断

作者头像
用户7293182
发布2022-01-17 21:19:56
发布2022-01-17 21:19:56
6700
举报
文章被收录于专栏:jQuery每日经典jQuery每日经典

Javascript中常见类型对象有:

Boolean, Number, String, Function, Array, Date, RegExp, Object, Error, Symbol等等.

下面提供区分这几种类型的工具方法,前提是使用javascript,如果项目中使用了jquery或者angularjs等框架,就没必要自己再写这样的工具函数。

第一种:最笨的办法,一一列举

function isBoolean(value) { return typeof value === 'boolean'; } function isNumber(value) { return typeof value === 'number'; } function isString(value) { return typeof value === 'string'; } function isFunction(value) { return typeof value === 'function'; } var isArray = Array.isArray; function isDate(value) { return toString.call(value) === '[object Date]'; } function isRegExp(value) { return toString.call(value) === '[object RegExp]'; } function isObject(value) { return value !== null && typeof value === 'object'; } function isUndefined(value) { return typeof value === 'undefined'; } function isDefined(value) { return typeof value !== 'undefined'; } function isBlankObject(value) { return value !== null && typeof value === 'object' && !getPrototypeOf(value); } function isFile(obj) {return toString.call(obj) === '[object File]';} function isFormData(obj) {return toString.call(obj) === '[object FormData]';} function isBlob(obj) {return toString.call(obj) === '[object Blob]';} function isWindow(obj) {return obj && obj.window === obj;}

这样看下来,这些方法其实就是利用 typeof和toString方法,在外面定义一个function而已,也不叫封装,也没必要封装。

使用时,直接用就可以。那如果说在使用时,不知道什么时候用typeof,什么时候用toString。

很简单嘛,直接拷贝上面代码(坏笑)。要记住这么多方法名也还挺不容易的,哦?有规律,类别首字母大写,前面加"is"。

第二种,jQuery式封装,定义一个统一接口

这种方法相对于上面的方法,就简单太多了。

想要知道某个对象是什么类型,调用type()方法。

想要知道某个对象是不是某类型,使用type() ==='某类型的小写字符串',例如:type() ==='string' 或者 type() ==='array'

var class2type = {}; "Boolean Number String Function Array Date RegExp Object Error Symbol" .split( " " ) .forEach(function(element,index){ class2type[ "[object " + element + "]" ] = element.toLowerCase(); }); function type(obj) { if ( obj == null ) { return obj + ""; } return typeof obj === "object" || typeof obj === "function" ? class2type[ toString.call( obj ) ] || "object" : typeof obj; }

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 jQuery每日经典 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Javascript中常见类型对象有:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档