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 EasyUI API 中文文档 搜索框
Sep 29 Javascript
JavaScript编程的10个实用小技巧
Apr 18 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
js格式化时间小结
Nov 03 Javascript
在JavaScript中处理数组之reverse()方法的使用
Jun 09 Javascript
JS使用parseInt解析数字实现求和的方法
Aug 05 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
js实现上传图片预览方法
Oct 25 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
快速解决element的autofocus失效问题
Sep 08 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多种序列化与反序列化的方法
2013/06/06 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
javascript中的float运算精度实例分析
2010/08/21 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
ET Mall东森购物网:东森严选
2017/03/06 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
《藏戏》教学反思
2014/02/11 职场文书
优秀英文求职信范文
2015/03/19 职场文书
企业百日安全活动总结
2015/05/07 职场文书
师范生见习总结范文
2015/06/23 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python