在javaScript中检测数据类型的几种方式小结


Posted in Javascript onMarch 04, 2017

在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅。

一、typeof  检测

typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型。它的返回值是一个字符串,该字符串说明运算数的类型。

// var arr = { name:"john"}; // object
  // var arr = ["语文","数学"]; // object
  // function Person() {};  // typeof(Person) => function
  // var arr = '我是字符串' ; // string
  // var arr = 66 ;    // number
  // var arr = true ;   // boolean
  // var arr = new Person(); // object
  // var arr = undefined;  // undefined
  // var arr = null;   // object
  // var arr = /^\d{5,20}$/; // object
  // console.log( typeof(arr) );

二、instanceof  检测

instanceof 检测某个对象是不是另一个对象的实例,可以在继承关系中用来判断一个实例是否属于它的父类型。

// var arr = '我是字符串' ;   // console.log( arr instanceof String ) => false
    // var arr = 66 ;      
 // console.log( arr instanceof Number ) =>false
    // var arr = true ;     
 // console.log( arr instanceof Boolean ) =>false
    // var arr = ["语文","数学"];
 // console.log( arr instanceof Array ) =>true
    // var arr = { name:"john"}; 
 // console.log( arr instanceof Object ) =>true
    // var arr = function Person(){}; //console.log(arr instanceof Function)=>true
    // var arr = undefined;      // console.log(arr instanceof Object)=>false
    // var arr = null;        // console.log(arr instanceof Object)=>false
    // var arr = /^\d{5,20}$/;    // console.log(arr instanceof RegExp)=>true

三、Object.prototype.toString.call  检测 

使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:Object.prototype.toString.call(value)

// var arr = '我是字符串' ;   //[object String]
    // var arr = 66 ;        //[object Number]
    // var arr = true ;       //[object Boolean]
    // var arr = ["语文","数学"];  //[object Array]
    // var arr = { name:"john"};  //[object Object]
    // var arr = function Person(){}; //[object Function]
    // var arr = undefined;      //[object Undefined]
    // var arr = null;         //[object Null]
    // var arr = /^\d{5,20}$/;     //[object RegExp]
    // console.log( Object.prototype.toString.call(arr) );

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
javascript实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
Sep 14 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
JavaScript中数据结构与算法(四):串(BF)
Jun 19 Javascript
理解 JavaScript Scoping & Hoisting(二)
Nov 18 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
Mar 04 Javascript
electron实现qq快捷登录的方法示例
Oct 22 Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 #Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 #Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 #Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 #Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 #Javascript
简单实现js菜单栏切换效果
Mar 04 #Javascript
浅谈javascript的url参数parse和build函数
Mar 04 #Javascript
You might like
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
让你的网站可编辑的实现js代码
2009/10/19 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
AngularJS获取json数据的方法详解
2017/05/27 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
Python编写一个闹钟功能
2017/07/11 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
python生成n个元素的全组合方法
2018/11/13 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
Yahoo-PHP面试题1
2016/07/20 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
百度吧主申请感言
2014/01/12 职场文书
预备党员表决心书
2014/03/11 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
房屋质量投诉书
2015/07/02 职场文书
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server