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访问样式表代码
Oct 15 Javascript
javascript将数组插入到另一个数组中的代码
Jan 10 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
javascript实现全角转半角的方法
Jan 23 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
node.js实现为PDF添加水印的示例代码
Dec 05 Javascript
vue-cli3环境变量与分环境打包的方法示例
Feb 18 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
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
?算你??的 PHP 程式大小
2006/12/06 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
YII框架常用技巧总结
2019/04/27 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
python实现KNN分类算法
2019/10/16 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
EJB3.1都有哪些改进
2012/11/17 面试题
小学生红领巾广播稿
2014/01/21 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
高中打架检讨书
2014/02/13 职场文书
化妆品促销方案
2014/02/24 职场文书
医院节能减排方案
2014/06/13 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
python画条形图的具体代码
2022/04/20 Python