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 04 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
详解javascript函数的参数
Nov 10 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
vue中倒计时组件的实例代码
Jul 06 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 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中常见的mongodb查询操作
2013/06/20 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
JS实现图片切换效果
2018/11/17 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
初步认识Python中的列表与位运算符
2015/10/12 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
pandas数值计算与排序方法
2018/04/12 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python3 读取Word文件方式
2020/02/13 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
金士达面试非笔试
2012/03/14 面试题
工程专业应届生求职信
2014/02/19 职场文书
老公爱的承诺书
2014/03/31 职场文书
团结演讲稿范文
2014/05/23 职场文书
计算机毕业生求职信
2014/06/10 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
同学聚会通知短信
2015/04/20 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书