在javaScript中检测数据类型的几种方式小结
在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅。
一、typeof 检测
typeof是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型。它的返回值是一个字符串,该字符串说明运算数的类型。
//vararr={name:"john"};//object //vararr=["语文","数学"];//object //functionPerson(){};//typeof(Person)=>function //vararr='我是字符串';//string //vararr=66;//number //vararr=true;//boolean //vararr=newPerson();//object //vararr=undefined;//undefined //vararr=null;//object //vararr=/^\d{5,20}$/;//object //console.log(typeof(arr));
二、instanceof 检测
instanceof检测某个对象是不是另一个对象的实例,可以在继承关系中用来判断一个实例是否属于它的父类型。
//vararr='我是字符串';//console.log(arrinstanceofString)=>false //vararr=66;//console.log(arrinstanceofNumber)=>false //vararr=true;//console.log(arrinstanceofBoolean)=>false //vararr=["语文","数学"];//console.log(arrinstanceofArray)=>true //vararr={name:"john"};//console.log(arrinstanceofObject)=>true //vararr=functionPerson(){};//console.log(arrinstanceofFunction)=>true //vararr=undefined;//console.log(arrinstanceofObject)=>false //vararr=null;//console.log(arrinstanceofObject)=>false //vararr=/^\d{5,20}$/;//console.log(arrinstanceofRegExp)=>true
三、Object.prototype.toString.call 检测
使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:Object.prototype.toString.call(value)
//vararr='我是字符串';//[objectString] //vararr=66;//[objectNumber] //vararr=true;//[objectBoolean] //vararr=["语文","数学"];//[objectArray] //vararr={name:"john"};//[objectObject] //vararr=functionPerson(){};//[objectFunction] //vararr=undefined;//[objectUndefined] //vararr=null;//[objectNull] //vararr=/^\d{5,20}$/;//[objectRegExp] //console.log(Object.prototype.toString.call(arr));
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。