js的各种数据类型判断的介绍


Posted in Javascript onJanuary 19, 2019

1.typeof

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

2. instanceof

判断已知对象类型的方法.instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

var c= [1,2,3]; 
  var d = new Date(); 
  var e = function(){alert(111);}; 
  var f = function(){this.name="22";}; 
  console.log(c instanceof Array) //true
  console.log(d instanceof Date) //true
  console.log(e instanceof Function) //true
  // console.log(f instanceof function ) //false

3.constructor

根据对象的constructor判断,返回对创建此对象的数组函数的引用。

var c= [1,2,3]; 
var d = new Date(); 
var e = function(){alert(111);}; 
alert(c.constructor === Array) ----------> true 
alert(d.constructor === Date) -----------> true 
alert(e.constructor === Function) -------> true 
//注意: constructor 在类继承时会出错

4.prototype

所有数据类型均可判断: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]

其实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]; 
  } 
  ........ 
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
jQuery中add实现同时选择两个id对象
Oct 22 Javascript
javascript初学者常用技巧
Sep 02 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 Javascript
jQuery四种选择器使用及示例
Jun 05 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
Vue2.x中的Render函数详解
May 30 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
ElementUI之Message功能拓展详解
Oct 18 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 #Javascript
Vuex中的State使用介绍
Jan 19 #Javascript
为什么要使用Vuex的介绍
Jan 19 #Javascript
Vue核心概念Getter的使用方法
Jan 18 #Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 #Javascript
JavaScript数据结构之栈实例用法
Jan 18 #Javascript
Vue核心概念Action的总结
Jan 18 #Javascript
You might like
PHP调用VC编写的COM组件实例
2014/03/29 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
domReady的实现案例
2016/11/23 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
python删除列表中重复记录的方法
2015/04/28 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
python发送邮件脚本
2018/05/22 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
Django多数据库联用实现方法解析
2020/11/12 Python
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
办公室秘书自我鉴定
2014/01/18 职场文书
顶撞领导检讨书
2014/01/29 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
情人节单身感言
2015/08/03 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
MongoDB支持的索引类型
2022/04/11 MongoDB