zoukankan      html  css  js  c++  java
  • 如何正确的检测对象类型?

    在 javascript 中,我们常常用 typeof 运算符来检测对象的类型,在使用 typeof 检测引用类型的存储值会出现一个问题,无论引用的是什么类型的对象,它都会返回 "object"。这个时候我们往往会使用 instanceof instanceof 可以明确的检测某个存储值是否为指定的类型,例如:

    1 console.log([1, 2, 3, 4, 5] instanceof Array)   // 输出 "true"

    通常来说 instanceof 就是判断一个实例是否属于某种类型,例如:

    1 // 判断 foo 是否是 Foo 类的实例
    2 function Foo(){} 
    3 var foo = new Foo(); 
    4 console.log(foo instanceof Foo)//true

    至于 instanceof 其他的应用场景这里暂时不提,那么还有什么方法可以检测对象的类型呢?
    那就是 Object.prototype.toString.call(obj),例如:

    console.log(Object.prototype.toString.call("jerry"));//[object String]
    console.log(Object.prototype.toString.call(12));//[object Number]
    console.log(Object.prototype.toString.call(true));//[object Boolean]
    console.log(Object.prototype.toString.call(undefined));//[object Undefined]
    console.log(Object.prototype.toString.call(null));//[object Null]
    console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object]
    console.log(Object.prototype.toString.call(function(){}));//[object Function]
    console.log(Object.prototype.toString.call([]));//[object Array]
    console.log(Object.prototype.toString.call(new Date));//[object Date]
    console.log(Object.prototype.toString.call(/d/));//[object RegExp]
    function Person(){};
    console.log(Object.prototype.toString.call(new Person));//[object Object]
  • 相关阅读:
    hdoj 2041 超级楼梯
    hdoj 刚入门~把11页A了一些~~
    编写Powerdesigner脚本,快速生成数据库表
    网站
    duwamish
    面试题
    http://www.sqlclub.com
    Microsoft PetShop 3.0 设计与实现数据访问层
    Java代码查询站点
    从Blog上面去掉那该死的“狗狗订阅”的logo !
  • 原文地址:https://www.cnblogs.com/huoxiao/p/10307946.html
Copyright © 2011-2022 走看看