zoukankan      html  css  js  c++  java
  • js常用的几种类型检测方式

    类型检测方式

    平时数据类型都是清晰明了的,但有些功能函数还是需要用到类型检测,现总结一下几种常见的类型检测方式:
    1. typeof
    2. instanceof
    3. Object.prototype.toString

      typeof:

      通常只记得适合基本类型,

      

      不要忘了还有函数对象

       

      还有只能大致判断的Object相关的

        

      还有一个非主流的null

        

      那么多个object,谁是谁呢?

       instanceof:

      A instanceof B: 

        A: 基本类型就直接GG,false,必须是个对象

        B:要么是个对象,要么是个构造函数

        跨平台iframe、不同window一样GG;

        代表是A的原型链上是否有B的prtotype属性(有点拗口,用lol简单点就是判断英雄A(奥巴马)有没有B(破败)的被动来判断是否已经买了B(破败),好吧也不太准确词穷)

          

        所以说这个null有点日怪;

        instanceof最主要的还是判断这个原型链上的关系:

          这个是亲生的

          

           也许你会想这样

          

          因为这是个假老王,

           

          好吧,来个借腹生子的,

          

          

          关键在于改变了ls.__proto__的指向

          

          怎么生一窝呢?

          

          

          

          

          还是把构造器弄回来吧

          

          太懒了,箭头都不想打了

         Object.prototype.toString:

          原型链倒数第二层Object上的方法,原型链没有__proto__就没有再下一层了,再找是null了

          

          怎么用呢,借助call或者apply吧,

            Object.prototype.toString.apply();

            Object.prototype.toString.call();

           

          这个在ie678还是不撑头,null和undefined还会返回"[object Object]";

      

      

  • 相关阅读:
    mysql启动失败
    mini.open参数传递
    json的key动态赋值
    Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别
    centos 7.2 安装mongodb 3.4.4免编译
    tomcat 8.0安装ssl证书,及centos7.2 的openssl升级到最新版本,及ERR_SSL_OBSOLETE_CIPHER错误解决
    云服务器 Centos7.0 部署
    笔记
    oracle 视图的创建,游标,left join
    在Extjs中对日期的处理,以及在后端数据在SQL语句的判断处理
  • 原文地址:https://www.cnblogs.com/dansingal/p/6843534.html
Copyright © 2011-2022 走看看