美文网首页我爱编程
js判断数据类型方法

js判断数据类型方法

作者: 阴魏什么wjl | 来源:发表于2018-05-23 08:23 被阅读0次

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String;复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array, Function, Date等等

    JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性: 

    1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。 但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。

    2)instanceof 运算符。 instanceof 运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回 false。

    var obj=new Son();  

    alert("obj是否是Son的实例?  "+(obj instanceof Son));//true  

    3)constructor 属性。 JavaScript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。如给定一个求知的值 通过typeof运算符来判断它是原始的值还是对象。如果是对象,就可以使用constructor属性来判断其类型。

    "John".constructor                 // 返回函数 String()  { [native code] }

    (3.14).constructor                 // 返回函数 Number()  { [native code] }

    false.constructor                  // 返回函数 Boolean() { [native code] }

    [1,2,3,4].constructor              // 返回函数 Array()   { [native code] }

    {name:'John', age:34}.constructor  // 返回函数 Object()  { [native code] }

    new Date().constructor             // 返回函数 Date()    { [native code] }

    function () {}.constructor         // 返回函数 Function(){ [native code] }

    4、使用Object.prototype.toString.call

    Object.prototype.toString.call(str),   //object string

     Object.prototype.toString.call(bool), //object Boolean

    从输出的结果来看,Object.prototype.toString.call(变量)输出的是一个字符串,字符串里有一个数组,第一个参数是Object,第二个参数就是这个变量的类型,而且,所有变量的类型都检测出来了,我们只需要取出第二个参数即可。或者可以使用Object.prototype.toString.call(arr)=="object Array"来检测变量arr是不是数组。


    5. jquery中$.type的实现

    在jquery中提供了一个$.type的接口,来让我们检测变量的类型

    相关文章

      网友评论

        本文标题:js判断数据类型方法

        本文链接:https://www.haomeiwen.com/subject/ldmljftx.html