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 面向对象编程(1) 基础
May 18 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
JS中call/apply、arguments、undefined/null方法详解
Feb 15 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
js JSON.stringify()基础详解
Jun 19 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
js中实现继承的五种方法
Jan 25 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集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
python模糊图片过滤的方法
2018/12/14 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
如何理解Python中的变量
2020/06/01 Python
Python urllib2运行过程原理解析
2020/06/04 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
毕业自我鉴定范文
2013/11/06 职场文书
广告设计专业自荐信范文
2013/11/14 职场文书
七年级数学教学反思
2014/01/22 职场文书
个人校本研修方案
2014/05/26 职场文书
小组口号大全
2014/06/09 职场文书
党员演讲稿
2014/09/04 职场文书
教书育人演讲稿
2014/09/11 职场文书
社区活动总结范文
2015/05/07 职场文书
建党伟业观后感
2015/06/01 职场文书
《我是什么》教学反思
2016/02/16 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技