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

在用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!

 

posted @ 2017-03-03 19:03  阿宝smile  阅读(372)  评论(1编辑  收藏  举报