美文网首页
谈一下instanceof、Array.isArray、Obje

谈一下instanceof、Array.isArray、Obje

作者: 小汤猿 | 来源:发表于2022-11-25 22:39 被阅读0次
    1.instanceof

    使用instanceof判断数组,instanceof会判断这个对象的原型链上是否会找到对应的Array的原型,找到则返回true,否则返回false;

       [] instanceof Arrary      // true
    

    缺点:instanceof 只能判断对象,原始类型不可以, 并且所有对象类型 instanceof Object 都返回true


    instanceof.png
    2. Array.isArray

    当检测Array实例时,Array.isArray 优于 instanceof
    其内部原理是基于Object.prototype.toString.call()

        Array.isArray = function(value) {
          return Object.prototype.toString.call(value) === '[object Array]';
        }
    
    3. Object.prototype.toString.call()

    任何数据类型的原型最终指向Object, Object的最终指向null。
    Object有一个内置方法toString, 通过call()方法可以判断任何数据类型, symbol也可以

    let s = Symbol(2)
    Object.prototype.toString.call(s)  // "[object Symbol]"
    

    相关文章

      网友评论

          本文标题:谈一下instanceof、Array.isArray、Obje

          本文链接:https://www.haomeiwen.com/subject/iojqfdtx.html