在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));
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。