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]";

      

      

  • 相关阅读:
    autojspro常用的代码和公共函数搜集整理,史上最全最完整
    C# List类型复制克隆副本以及插入数据,按照某个字段进行排序,去掉某些不符合要求的数据
    C# 将double类型值截取小数点后两位或者多位
    Excel表格中引用另外一格数据。写sql用的
    最全的Resharper快捷键汇总
    easyui datagrid没有ID情况下,easyui datagrid 删除行信息方法
    C# 通过JObject解析json对象
    c#中string字符串转为json与json转对象
    前端js拼接Json字符串,全
    Java+IDEA环境配置整合
  • 原文地址:https://www.cnblogs.com/dansingal/p/6843534.html
Copyright © 2011-2022 走看看