在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 ajax服务器端与客户端通信的代码
Mar 28 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
基于javascript如何传递特殊字符
Nov 30 Javascript
js实现简单的验证码
Dec 25 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
微信开发 js实现tabs选项卡效果
Oct 28 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
Jun 16 Javascript
浅谈vue,angular,react数据双向绑定原理分析
Nov 28 Javascript
layui实现table加载的示例代码
Aug 14 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
Javascript----文件操作
2007/01/18 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
中间件分为哪几类
2012/03/14 面试题
文秘专业大学生求职信
2013/11/10 职场文书
食堂个人先进事迹
2014/01/22 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
辞职信怎么写
2015/02/27 职场文书
2019公司管理制度
2019/04/19 职场文书
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB