博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript判断数据类型
阅读量:4965 次
发布时间:2019-06-12

本文共 2255 字,大约阅读时间需要 7 分钟。

整理一下javascript判断数据类型的函数

方法一:

1 function isNumber(obj) { 2     return Object.prototype.toString.call(obj) === "[object Number]"; 3 } 4 function isString(obj) { 5     return Object.prototype.toString.call(obj) === "[object String]"; 6 } 7 function isBoolen(obj) { 8     return Object.prototype.toString.call(obj) === "[object Boolen]"; 9 }10 function isFunction(obj) {11     return Object.prototype.toString.call(obj) === "[object Function]";12 }13 function isArray(obj) {14     try {15         Array.prototype.toString.call(obj);16         return true;17     } catch(e) {}18     return false;19 }20 function isNaN(obj) {21     return obj !== obj;22 }23 function isNull(obj) {24     return obj === obj;25 }26 function isUndefined(obj) {27     return obj === void 0;28 }

 方法二:

1 var class2type = { 2     "[object HTMLDocument]": "Document", 3     "[object HTMLCollection]": "NodeList", 4     "[Object StaticNodeList]": "NodeList", 5     "[obejct IXMLDOMNodeList]": "NodeList", 6     "[object DOMWindow]": "Window", 7     "[object global]": "window", 8     "null": "Null", 9     "NaN": "NaN",10     "undefined": "Undefined"11 },12 toString = class2type.toString;13 "Boolean,Number.String,Function.Array.Date,RegExp,Window,Document,Arguments,NodeList".replace(/\w+/g, function(name) {14     class2type[ "[object " + name + "]" ] = name;15 });16 17 type = function(obj, str) {18     var result = class2type[ (obj == null || obj !== obj) ? obj : toString.call(obj) ] || obj.nodeName || "#";19     if (result.charAt(0) === "#") {    //兼容旧版本浏览器与处理个别情况,如window.opera20         //利用IE6、IE7、IE8 window == document 为true,document == window竟然为false的神奇特性21         if (obj == obj.document && obj.document != obj ) {22             result = 'Window';        //返回构造器名字23         } else if (obj.nodeType === 9) {24             result = 'Document';    //返回构造器名字25         } else if (obj.callee) {26             result = 'Arguments';    //返回构造器名字27         } else if (isFinite(obj.length) && obj.item) {28             result = 'NodeList';    //处理节点集合29         } else {30             result = toString.call(obj).slice(8, -1);31         }32     }33     if (str) {34         return str === result;35     }36     return result;37 }

 

转载于:https://www.cnblogs.com/mitch/p/5189090.html

你可能感兴趣的文章
mysql union 组合查询
查看>>
socket tcp
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
三大WEB服务器对比分析(apache ,lighttpd,nginx)
查看>>
关于STC单片机的内存管理
查看>>
1025: [SCOI2009]游戏 - BZOJ
查看>>
python set集合方法总结
查看>>
python考点
查看>>
dstat 监控时,无颜色显示
查看>>
CSS3阴影 box-shadow的使用和技巧总结
查看>>
DataMining--Python基础入门
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
获取单选按钮选中的值
查看>>
oracle 分页
查看>>
助教学期总结
查看>>
绘制基本 图形之矩形与多边形
查看>>
3-day3-list-truple-map.py
查看>>
02: djangorestframework使用
查看>>
7zip 自解压安装程序
查看>>