zoukankan      html  css  js  c++  java
  • js辨别对象的类型

    本文主要针对 Null,ExpReg,Array,Date这一些typeof函数辨别不了的对象; 

    顺便贴上一篇关于typeof的理解:http://www.cnblogs.com/chaky/p/7284163.html

    首先,辨别对象类型的方法:

    1、instanceof(是否...的实例)  返回true or false

      我们可以用它来辨别 ExpReg Array Date类型的对象  不适用于null

      

    2、constructor //原型对象里的构造器指向; 不支持null识别

      

     

    3、isArray 专门用于数组识别 (Array对象特有方法,不被子例 '继承' );

       

    4、String() 区分null 和 undefined  //该函数底层实现应有全等比较符

      

    5、根据对象类型特性判断属于是哪种对象;

      有3种类型 Array String NodeList;

      其中他们都有 length属性;

      forEach只有 Array和NodeList有;

      Array有concat,NodeList没有 

      通过特性的辨别我们就可以区分出3种属性类型;

    6、万用辨别类型的方法,原理是通过 toString这方法;//转载,非原创

    var is =   function (obj,type) 

          return (type === "Null" && obj === null) || 

               (type === "Undefined" && obj === void 0 ) || 

               (type === "Number" && isFinite(obj)) || Object.prototype.toString.call(obj).slice(8,-1) === type

    }

     ------------------------如果有更好的辨别方法欢迎留言!--------------------------

      

      

      

  • 相关阅读:
    Linux
    memory库函数的实现
    剑指Offer面试题1
    Linux
    Linux-配置vim开发环境
    Linux-Find命令
    busybox,alphine,ubuntu,centos/fedore操作系统
    端口映射与容器互联
    docker 数据管理数据卷
    Celery
  • 原文地址:https://www.cnblogs.com/chaky/p/7286803.html
Copyright © 2011-2022 走看看