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代码
Dec 01 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
完美JQuery图片切换效果的简单实现
Jul 21 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
Sep 14 Javascript
IONIC自定义subheader的最佳解决方案
Sep 22 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
JavaScript表单验证的两种实现方法
Feb 11 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 Javascript
JS中封装axios来管控api的2种方式
Sep 11 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伪静态页面函数附使用方法
2008/06/20 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
九步学会Python装饰器
2015/05/09 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
房地产销售计划书
2014/01/10 职场文书
给校长的建议书100字
2014/05/16 职场文书
工程项目经理任命书
2014/06/05 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
高中政治教学反思
2016/02/23 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python