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对表单元素的取值和赋值操作代码
May 19 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
探讨AngularJs中ui.route的简单应用
Nov 16 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
基于Vue生产环境部署详解
Sep 15 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
js实现搜索栏效果
Nov 16 Javascript
jQuery无冲突模式详解
Jan 17 jQuery
通过vue写一个瀑布流插件代码实例
Sep 07 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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/08 PHP
微信支付开发告警通知实例
2016/07/12 PHP
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
浅谈Node 调试工具入门教程
2018/03/20 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python字符串格式化
2015/06/15 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
python super的使用方法及实例详解
2019/09/25 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
劳资人员岗位职责
2013/12/19 职场文书
校园招聘策划书
2014/01/09 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
党员个人总结范文
2015/02/14 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Python面试不修改数组找出重复的数字
2022/05/20 Python