在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 相关文章推荐
js预加载图片方法汇总
Jun 15 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
详解Angularjs filter过滤器
Feb 06 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
Aug 18 Javascript
javascript实现一个网页加载进度loading
Jan 04 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
浅谈mvvm-simple双向绑定简单实现
Apr 18 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
May 16 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
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
请离开include_once和require_once
2013/07/18 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
强制设为首页代码
2006/06/19 Javascript
JavaScript 学习 - 提高篇
2007/02/02 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
js单例模式的两种方案
2013/10/22 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
python math模块的基本使用教程
2021/01/16 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
诉前财产保全担保书
2014/05/20 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
中秋联欢会主持词
2015/07/04 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技