判断js数据类型的函数实例详解


Posted in Javascript onMay 23, 2019
function judgeType(change) {
    if (arguments.length == 0) {
      return '0';//无参数传入
    }
    if (change === null) {
      return 'null'
    }
    if (change === undefined && arguments.length > 0) {
      return 'undefined'
    }
    if (change instanceof Function) {
      return 'function'
    }
    if (change instanceof Array) {
      return 'arry'
    }
    if (change instanceof Number || typeof change == 'number') {
      return 'number'
    }
    if (change instanceof String || typeof change == 'string') {
      return 'string'
    }
    if (change instanceof Boolean || typeof change == 'boolean') {
      return 'boolean'
    }
  }

ps:下面看下js 判断各种数据类型

了解js的都知道, 有个typeof  用来判断各种数据类型,有两种写法:typeof   xxx   ,typeof(xxx)

       如下实例:

typeof  2   输出  number
    typeof  null  输出  object
    typeof  {}  输出  object
    typeof  []  输出  object
    typeof  (function(){})  输出 function 
    typeof  undefined     输出 undefined
    typeof  '222'         输出  string 
   typeof true          输出   boolean

    这里面包含了js里面的五种数据类型  number   string    boolean   undefined     object和函数类型 function

     看到这里你肯定会问了:我怎么去区分对象,数组和null呢?

     接下来我们就用到另外一个利器:Object.prototype.toString.call

     这是对象的一个原生原型扩展函数,用来更精确的区分数据类型。

     我们来试试这个玩儿意儿:

var  gettype=Object.prototype.toString
    gettype.call('aaaa')    输出   [object String]
    gettype.call(2222)     输出   [object Number]
    gettype.call(true)     输出   [object Boolean]
    gettype.call(undefined) 输出   [object Undefined]
    gettype.call(null)         输出  [object Null]
     gettype.call({})          输出  [object Object]
     gettype.call([])          输出  [object Array]
     gettype.call(function(){})   输出  [object Function]

      看到这里,刚才的问题我们解决了。

     constructor也能判断数据类型:

     如:

''.constructor==String   
      [].constructor==Array
      var obj= new Object()  
  obj.constructor==Object

      其实js 里面还有好多类型判断      [object HTMLDivElement]     div 对象  ,    [object HTMLBodyElement]  body 对象    ,[object Document](IE)或者  [object HTMLDocument](firefox,google) ......各种dom节点的判断,这些东西在我们写插件的时候都会用到。

     可以封装的方法如下  :

var  gettype=Object.prototype.toString
   var  utility={
     isObj:function(o){
        return  gettype.call(o)=="[object Object]";
     },
     isArray:function(o){
        return  gettype.call(o)=="[object Array]";
     },
     isNULL:function(o){
        return  gettype.call(o)=="[object Null]";
     },
     isDocument:function(){
         return  gettype.call(o)=="[object Document]"|| [object HTMLDocument];
     }
     ........
  }

    这个获取类型的方法有个简单的写法:

var Type = (function() {
        var type = {};
        var typeArr = ['String', 'Object', 'Number', 'Array','Undefined', 'Function', 'Null', 'Symbol'];
        for (var i = 0; i < typeArr.length; i++) {
          (function(name) {
            type['Is' + name] = function(obj) {
              return Object.prototype.toString.call(obj) == '[object ' + name + ']';
            }
          })(typeArr[i]);
        }
        return type;
})();

调用方法:Type.IsFunction(function() {})      Type.IsObject({})。。。。。

Type.Is.....

总结

以上所述是小编给大家介绍的判断js数据类型的函数实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript 精粹笔记
May 09 Javascript
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
判断window.onload是否多次使用的方法
Sep 21 Javascript
node.js中的fs.truncateSync方法使用说明
Dec 15 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
实例解析Array和String方法
Dec 14 Javascript
layui在form表单页面通过Validform加入简单验证的方法
Sep 06 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 Javascript
JS定义函数的几种常用方法小结
May 23 #Javascript
vue-test-utils初使用详解
May 23 #Javascript
了解前端理论:rscss和rsjs
May 23 #Javascript
微信小程序使用字体图标的方法
May 23 #Javascript
个人小程序接入支付解决方案
May 23 #Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 #Javascript
微信小程序上传图片到php服务器的方法
May 23 #Javascript
You might like
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
初识PHP中的Swoole
2016/04/05 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
js处理包含中文的字符串实例
2017/10/11 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python实现简易内存监控
2018/06/21 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Python continue语句实例用法
2020/02/06 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
护士的岗位职责
2013/12/04 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
导游词400字
2015/02/13 职场文书
成事在人观后感
2015/06/16 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python