判断各种数据类型的方法总结

Posted baixiaoxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断各种数据类型的方法总结相关的知识,希望对你有一定的参考价值。

1.typeof 

type of  ...判断数据类型

number返回number

string返回string

boolean返回boolean

undefined返回undefined

null返回object

function返回function

object返回object

array返回object

NAN返回number

2.instanceof

检查某对象是否属于某类型

instanceof是通过原型链来检查类型的,所以适用于任何”object”的类型检查。

 

 3.toString

     

     var   gettype = Object.prototype.toString

        gettype.call(‘aaaa‘)        输出      [object String]

        gettype.call(2222)         输出      [object Number]

        gettype.call(true)          输出      [object Boolean]

        gettype.call(undefined)  输出      [object Undefined]

        gettype.call(null)                  输出   [object Null]

         gettype.call({})                   输出   [object Object]

         gettype.call([])                    输出   [object Array]

         gettype.call(function(){})     输出   [object Function]

 

    4. constructor也能判断数据类型:

     如:    

 ‘‘.constructor==String    

 [].constructor==Array

 var obj= new Object()   obj.constructor==Object

检查所有数据类型的方法

 

function checkType (obj) {
     return Object.prototype.toString.call(obj).slice(8,-1)
}    

 

类型检测总结

==typeof==只能检测基本数据类型,对于null还有Bug;
==instanceof==适用于检测对象,它是基于原型链运作的;
==constructor==指向的是最初创建者,而且容易伪造,不适合做类型判断;
==Object.prototype.toString==适用于ECMA内置javascript类型(包括基本数据类型和内置对象)的类型判断;
基于引用判等的类型检查都有跨窗口问题,比如instanceof和constructor。
总之,如果你要判断的是基本数据类型或JavaScript内置对象,使用toString; 如果要判断的时自定义类型,请使用instanceof。

以上是关于判断各种数据类型的方法总结的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript判断数据类型总结

JS的数据类型判断函数数组对象结构处理日期转换函数,浏览器类型判断函数合集

细数判断数据类型的各种方法

js中判断数据类型的四种方法总结

IFE_part2_JavaScript_实践判断各种数据类型的方法

2016.1.22总结(方法)