您的位置:首页 > Web前端 > JavaScript

在javaScript中检测数据类型的几种方式

2017-03-04 15:39 549 查看
在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅。

一、typeof  检测

typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型。它的返回值是一个字符串,该字符串说明运算数的类型。

1        // var arr =  { name:"john"};  // object
2         // var arr =  ["语文","数学"]; // object
3         // function Person() {};       // typeof(Person) => function
4         // var arr =  '我是字符串' ;   // string
5         // var arr =  66 ;             // number
6         // var arr =  true  ;          // boolean
7         // var arr =  new Person();    // object
8         // var arr =  undefined;       // undefined
9         // var arr =  null;            // object
10         // var arr =  /^\d{5,20}$/;    // object
11         // console.log( typeof(arr) );


二、instanceof  检测

instanceof 检测某个对象是不是另一个对象的实例,可以在继承关系中用来判断一个实例是否属于它的父类型。

 

1         // var arr =  '我是字符串' ;       // console.log( arr instanceof String ) => false
2         // var arr =  66 ;               // console.log( arr instanceof Number ) =>false
3         // var arr =  true  ;            // console.log( arr instanceof Boolean ) =>false
4         // var arr =  ["语文","数学"];    // console.log( arr instanceof Array ) =>true
5         // var arr =  { name:"john"};    // console.log( arr instanceof Object ) =>true
6         // var arr =  function Person(){}; //console.log(arr instanceof Function)=>true
7         // var arr =  undefined;           // console.log(arr instanceof Object)=>false
8         // var arr =  null;               // console.log(arr instanceof Object)=>false
9         // var arr =  /^\d{5,20}$/;       // console.log(arr instanceof RegExp)=>true


 

三、Object.prototype.toString.call  检测

 

使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:Object.prototype.toString.call(value)

 

1          // var arr =  '我是字符串' ;     //[object String]
2         // var arr =  66 ;               //[object Number]
3         // var arr =  true ;             //[object Boolean]
4         // var arr =  ["语文","数学"];   //[object Array]
5         // var arr =  { name:"john"};    //[object Object]
6         // var arr =  function Person(){};  //[object Function]
7         // var arr =  undefined;            //[object Undefined]
8         // var arr =  null;                 //[object Null]
9         // var arr =  /^\d{5,20}$/;         //[object RegExp]
10         // console.log( Object.prototype.toString.call(arr) );


 

以上整理的笔记可能也有疏忽遗漏的地方,如果你有发现,记得快快给我指出来吧,促进你我共同进步,我是爱折腾、不怕麻烦的九九smile!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: