在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 相关文章推荐
用javascript getComputedStyle获取和设置style的原理
Oct 10 Javascript
javascript 类方法定义还是有点区别
Apr 15 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
js实现的四级左侧网站分类菜单实例
May 06 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 Javascript
JavaScript实现优先级队列
Dec 06 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
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php的debug相关函数用法示例
2016/07/11 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
python写入已存在的excel数据实例
2018/05/03 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
给男朋友的道歉信
2014/01/12 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
人事局接收函
2015/01/31 职场文书
毕业典礼主持词
2015/06/29 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python