在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日期时间补零的小例子
Mar 05 Javascript
JavaScript设置获取和设置属性的方法
Mar 04 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
May 10 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
Sep 04 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
vue中如何去掉空格的方法实现
Nov 09 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 Javascript
javascript代码实现简易计算器
Jan 25 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 file_get_contents函数轻松采集html数据
2010/04/22 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
面试常见的js算法题
2017/03/23 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
Python中的字符串替换操作示例
2016/06/27 Python
python之PyMongo使用总结
2017/05/26 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
C#笔试题
2015/07/14 面试题
计算机应用与科学个人的自我评价
2013/11/15 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
业务部经理岗位职责
2014/01/04 职场文书
2014年审计工作总结
2014/11/17 职场文书
大学生团日活动总结
2015/05/06 职场文书
新娘婚礼致辞
2015/07/27 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python