一、Object.prototype.toString方法(摘自http://javascript.ruanyifeng.com/stdlib/object.html#toc3

    1. //不同数据类型的Object.prototype.toString方法返回值如下。
    2.  
    3. /*数值:返回[object Number]。
    4. 字符串:返回[object String]。
    5. 布尔值:返回[object Boolean]。
    6. undefined:返回[object Undefined]。
    7. null:返回[object Null]。
    8. 数组:返回[object Array]。
    9. arguments对象:返回[object Arguments]。
    10. 函数:返回[object Function]。
    11. Error对象:返回[object Error]。
    12. Date对象:返回[object Date]。
    13. RegExp对象:返回[object RegExp]。
    14. 其他对象:返回[object " + 构造函数的名称 + "]。*/
    15.  
    16. Object.prototype.toString.call(2) // "[object Number]"
    17. Object.prototype.toString.call('') // "[object String]"
    18. Object.prototype.toString.call(true) // "[object Boolean]"
    19. Object.prototype.toString.call(undefined) // "[object Undefined]"
    20. Object.prototype.toString.call(null) // "[object Null]"
    21. Object.prototype.toString.call(Math) // "[object Math]"
    22. Object.prototype.toString.call({}) // "[object Object]"
    23. Object.prototype.toString.call([]) // "[object Array]"
    1. //利用这个特性,可以写出一个比typeof运算符更准确的类型判断函数。
    2. var type = function (o){
    3. var s = Object.prototype.toString.call(o);
    4. return s.match(/\[object (.*?)\]/)[1].toLowerCase();
    5. };
    6.  
    7. type({}); // "object"
    8. type([]); // "array"
    9. type(5); // "number"
    10. type(null); // "null"
    11. type(); // "undefined"
    12. type(/abcd/); // "regex"
    13. type(new Date()); // "date"
    14.  
    15. //在上面这个type函数的基础上,还可以加上专门判断某种类型数据的方法。
    16. ['Null',
    17. 'Undefined',
    18. 'Object',
    19. 'Array',
    20. 'String',
    21. 'Number',
    22. 'Boolean',
    23. 'Function',
    24. 'RegExp',
    25. 'NaN',
    26. 'Infinite'
    27. ].forEach(function (t) {
    28. type['is' + t] = function (o) {
    29. return type(o) === t.toLowerCase();
    30. };
    31. });
    32.  
    33. type.isObject({}) // true
    34. type.isNumber(NaN) // true
    35. type.isRegExp(/abc/) // true

javascript判断数据类型的各种方法的更多相关文章

  1. javascript 判断数据类型的几种方法

    javascript 判断数据类型的几种方法一.typeof 直接返回数据类型字段,但是无法判断数组.null.对象 typeof 1 "number" typeof NaN &q ...

  2. JavaScript判断数据类型总结

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断网页特效,在此做一个总结吧! 一.JS中的数据类型  1.数值型(Number):包 ...

  3. Javascript判断数据类型的五种方式及其特殊性

    Javascript判断数据类型的五种方式及区别 @ 目录 typeof instanceof Object.prototype.toString isArray iisNaN ----------- ...

  4. JavaScript判断数据类型

    JavaScript中判断数据类型的方式有三种: 1.typeof typeof 1;   //"number" typeof "abc";  //" ...

  5. Javascript判断数据类型与真假值隐形转换研究

    一.引言 我们在开发的时候经常要判断真和假,这是我们经常写的代码: if(a){ alert(1) } 那我们怎么判定a是真还是假呢?下面这些值的真假又是多少呢?它们的数据类型又是怎样的呢? &quo ...

  6. JavaScript判断数据类型的方法

    typeof操作符 typeof 操作符作用:是用来检测变量的数据类型.对于值或变量使用 typeof 操作符会返回如下字符串. 数据类型undefined的判断示例 变量定义了但未初始化,就是und ...

  7. JavaScript判断数据类型的4中方法

    一: typeof typeof 是一种运算符,它的值有如下几种(number.boolean.string.undefined.null.function.object.symbol) consol ...

  8. JavaScript学习总结(六)——JavaScript判断数据类型总结

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型 1.数值型(Number):包括整数.浮 ...

  9. javascript 判断数据类型

    Object.prototype.toString.call(asddfff) //报错asddfff没被定义Object.prototype.toString.call(undefined) //& ...

随机推荐

  1. android onCreate中获取view宽高为0的解决方法

    view.post(runnable) 通过post可以将一个runnable投递到消息队列的尾部,然后等待UI线程Looper调用此runnable的时候,view也已经初始化好了. view.po ...

  2. UML入门

    本文主要讲解uml的一些入门知识. uml:统一建模语言,uml通过图形化的表达对系统进行细致的划分,在开发前期有助于开发人员与开发人员之间交流,同时也能方便用户与开发者之间进行良好的反馈.利用uml ...

  3. linux下编译gcc6.2.0

    linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...

  4. Ajax加载菊花loding效果

    Ajax 异步请求的时候,一般都会利用一个动态的 gif小图片来制作一个Ajax Loading ,以便增加用户体验. 这里我们使用Spin.js ,该 js 脚本压缩后5k,可以不用任何图片,任何外 ...

  5. Merge K Sorted Arrays

    This problem can be solved by using a heap. The time is O(nlog(n)). Given m arrays, the minimum elem ...

  6. Percona XtraBackup 备份原理说明【转】

    本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...

  7. 魔镜VIP批量条形码视频教程

    需要购买者请登我的淘宝店,https://cdrapp.taobao.com/  优惠价哦!

  8. Xcode7下模拟器输入文本无法显示系统键盘的解决办法

    xcode7下的ios模拟器输入内容无法系统键盘,只能用电脑键盘输入内容,这样可能会对调试带来麻烦. 其实xcode7下的ios模拟器默认只能使用一种,要么是模拟器系统键盘,要么就是是电脑键盘.设置方 ...

  9. struts2笔记(2)

    <context-param> <param-name>pattern</param-name> <param-value>yyyy-MM-dd hh: ...

  10. File文件的使用

    线程的停止: 1.停止一个线程一般是通过一个变量来控制 2.如果需要停止一个处于一个等待状态的线程,那么需要配合interrupture方法来完成 守护线程:(后台线程):在一个进程中只剩下守护线程, ...