美文网首页
谈一下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