在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实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
jQuery+css实现的换页标签栏效果
Jan 27 Javascript
node.js实现端口转发
Apr 14 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
React Router基础使用
Jan 17 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
JavaScript实现星级评价效果
May 17 Javascript
jquery多级树形下拉菜单的实例代码
Jul 09 jQuery
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 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 获取页面中指定内容的实现类
2014/01/23 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
node使用request请求的方法
2019/12/20 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
python实现电子书翻页小程序
2019/07/23 Python
python获取array中指定元素的示例
2019/11/26 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
三维科技面试题
2013/07/27 面试题
班级道德讲堂实施方案
2014/02/24 职场文书
家长会主持词
2014/03/26 职场文书
国旗下的演讲稿
2014/05/08 职场文书
美化环境标语
2014/06/20 职场文书
运动会加油稿20字
2014/11/15 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python