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数组组合成字符串的脚本
Jan 06 Javascript
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
对象转换为原始值的实现方法
Jun 06 Javascript
Bootstrap和Java分页实例第一篇
Dec 23 Javascript
简单实现js倒计时功能
Feb 13 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
JS实现普通轮播图特效
Jan 01 Javascript
vue-cli设置css不生效的解决方法
Feb 07 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
3分钟学会一个Python小技巧
2018/11/23 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
职务说明书范文
2014/05/07 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
转变工作作风心得体会
2016/01/23 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python