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 相关文章推荐
那些年,我还在学习jquery 学习笔记
Mar 05 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
javascript去除字符串左右两端的空格
Feb 05 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
Bootstrap前端开发案例一
Jun 17 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
微信小程序实现刷脸登录
May 25 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
vue 自定义提示框(Toast)组件的实现代码
Aug 17 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
Vue指令实现OutClick的示例
Nov 16 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
Python正则表达式的使用范例详解
2014/08/08 Python
python中正则表达式的使用详解
2014/10/17 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
Python docx库用法示例分析
2019/02/16 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
python 实现两个线程交替执行
2020/05/02 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python 如何创建一个线程池
2020/07/28 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
C#公司笔试题
2014/03/28 面试题
石油大学毕业生自荐信
2014/01/28 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
JavaScript函数柯里化
2021/11/07 Javascript
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android