在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 相关文章推荐
简短几句jquery代码的实现一个图片向上滚动切换
Sep 02 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
用jquery方法操作radio使其默认选项是否
Sep 10 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
详解js的六大数据类型
Dec 27 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
Jan 19 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
Nov 06 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 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不使用插件导出excel的简单方法
2014/03/04 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
js Calender控件使用详解
2015/01/05 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
Lucene推荐的分页方式是什么?
2015/12/07 面试题
控制工程专业个人求职信
2013/09/25 职场文书
法制宣传日活动总结
2014/04/29 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python