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 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
Javascript 获取滚动条位置等信息的函数
Sep 08 Javascript
JavaScript中对循环语句的优化技巧深入探讨
Jun 06 Javascript
基于JS实现EOS隐藏错误提示层代码
Apr 25 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
Vue2.0设置全局样式(less/sass和css)
Nov 18 Javascript
JS实现的抛物线运动效果示例
Jan 30 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
原生JS实现留言板
Mar 26 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笔试题
2009/08/04 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
JavaScript arguments 多参传值函数
2010/10/24 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
阿里旅行:飞猪
2017/01/05 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
护士自荐信怎么写
2013/10/18 职场文书
幼儿教师工作感言
2014/02/14 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
挂靠协议书
2015/01/27 职场文书
个人年度总结报告
2015/03/09 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
六一亲子活动感想
2015/08/07 职场文书
redis 查看所有的key方式
2021/05/07 Redis
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python