在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 相关文章推荐
document.getElementById介绍
Sep 13 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
Jun 12 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
jquery实现简单实用的轮播器
May 23 jQuery
javascript观察者模式实现自动刷新效果
Sep 05 Javascript
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
微信小程序后端(java)开发流程的详细步骤
Nov 13 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
用cookies来跟踪识别用户
2006/10/09 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python 使用get_argument获取url query参数
2017/04/28 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python学习思维导图(必看篇)
2017/06/26 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
python使用udp实现聊天器功能
2018/12/10 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
如何让python的运行速度得到提升
2020/07/08 Python
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
护理专业学生的求职信范文
2013/12/11 职场文书
上课说话检讨书大全
2014/01/22 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
党小组推荐意见
2015/06/02 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python