在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 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
JavaScript获得选中文本内容的方法
Dec 02 Javascript
jqgrid 简单学习笔记
May 03 Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
js时间日期格式化封装函数
Dec 02 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
深入理解(function(){... })();
Aug 16 Javascript
JS库之Highlight.js的用法详解
Sep 13 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
JavaScript异步加载浅析
2014/12/28 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
微信小程序实现留言板
2018/10/31 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
浅谈五大Python Web框架
2017/03/20 Python
python九九乘法表的实例
2017/09/26 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
python代码编写计算器小程序
2020/03/30 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
Python中有几个关键字
2020/06/04 Python
Java如何格式化日期
2012/08/07 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
四种会话跟踪技术
2015/05/20 面试题
生产副总岗位职责
2013/11/28 职场文书
公司委托书范本
2014/04/04 职场文书
大国崛起观后感
2015/06/02 职场文书
Python 全局空间和局部空间
2022/04/06 Python