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 异步处理进度条
Apr 01 Javascript
Document对象内容集合(比较全)
Sep 06 Javascript
jquery map方法使用示例
Apr 23 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
jQuery右下角悬浮广告实例
Oct 17 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
javascript实现弹出层效果
Dec 10 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 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学习笔记之二 php入门知识
2011/01/12 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
python负载均衡的简单实现方法
2018/02/04 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
作息时间调整通知
2015/04/22 职场文书
2016年父亲节寄语
2015/12/04 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android