zoukankan      html  css  js  c++  java
  • 准确判断数据类型的三种方法

    JavaScript中的数据类型判断一般都是使用的typeof操作符,但是这个操作符存在的问题就是他不能对ObjectArray,这两种数据类型进行准确的判断,并且对于null由于历史遗留性的问题,他也会判断成为Object类型,所以在typeof操作符中只有6种数据类型了,但是实际上JavaScript中是有8种数据类型的。
    所以这时候就需要能够准确的判断的数据类型的方法。
    这样子的方法总共有三种分别是Object.prototype.toString.call() instanceof constructor
    Object.prototype.toString.call()方法是直接调用Object原型上的toString方法,并通过call来改变this的指向来返回一个像是[object Array] [object Object]这样的字符串。
    instanceof操作符是判断某个Function是不是在这个对象的原型(原型上面的constructor属性)上面,如果是的话就会返回ture,否则就会返回false,因为查找的是整个原型链上面的,所以,只要是这个对象的父类都会返回true

    instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置

    至于constructor该怎么判断,只是直接创建的话当然是可以创建的,但是如果是使用构造函数创建的话,那又要怎么判断啊,我不太懂。
    还有一点要了解的,就是当存在有父子域以后,也就是在当前页面引入了其他的页面以后,那么对于引入页面的变量,通过instanceof是无法判断的(其实我很想知道是为什么),但是Object.prototype.toString.call就不会存在有这个问题。

  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/freesfu/p/10101559.html
Copyright © 2011-2022 走看看