• 判断数组的方法


    1.Array.prototype.isPrototypeOf(arr)

    判断Array是否在arr的原型链上,返回布尔类型,如果存在返回true,否则返回false

    1   console.log(Array.prototype.isPrototypeOf([])); //true
    2   console.log(Array.prototype.isPrototypeOf({})); //false
    3 
    4   const arr = [1,2,3]
    5   console.log(Array.prototype.isPrototypeOf(arr));  //true
    1   const arr = []
    2   console.log(arr);
    3   console.log(Array.prototype.isPrototypeOf(arr));  //true
    4   console.log(Object.prototype.isPrototypeOf(arr));  //true
    5
    console.log(arr.constructor == Array); //true
    6 console.log(arr.constructor == Object); /false
    
    

     

    2.instanceof

    instanceof()判断前者是否继承自后者

    1   console.log([] instanceof Array); //true
    2   console.log({} instanceof Array); //false

    补充:

    1   function Aoo() { }
    2   function Foo() { }
    3   Foo.prototype = new Aoo();//FOO类继承自AOO类
    4 
    5   var f = new Foo();
    6   console.log(f);
    7   console.log(f instanceof Foo)//true 
    8   console.log(f instanceof Aoo)//true

    3.Object.prototype.toString.call()

    每一个继承 Object 的对象都有 toString方法,如果 toString 方法没有重写的话,会返回 [Object type],其中 type 为对象的类型。

    但当变量类型不为对象时,使用 toString 方法会直接返回数据内容的字符串,所以我们需要使用call或者apply方法来改变toString方法的执行上下文。

     1   const arr = ['kujo', 'jotaro']
     2   const str = 'kujo jotaro'
     3   const obj = {
     4     firstname: 'jotaro',
     5     lastname: 'kujo'
     6   }
     7   const bol = false
     8   
     9   console.log(arr.toString())
    10   console.log(obj.toString())
    11   console.log(Object.prototype.toString.call(arr))
    12   console.log(Object.prototype.toString.call(str))
    13   console.log(Object.prototype.toString.call(obj))
    14   console.log(Object.prototype.toString.call(bol))

    4.Array.isArray()

    1   console.log(Array.isArray([])) //true
    2   console.log(Array.isArray({})) //false
    3   console.log(Array.isArray('jojo')) //false
  • 相关阅读:
    软件设计图工具
    属性读取
    socket ReceiveAsync
    Type.GetType()跨程序集反射
    实例化类的时候代码运行顺序
    C# 互斥对象--Mutex---线程同步
    【vim】vim配置教程+源码
    【框架】SPI四种模式+通用设备驱动实现
    【网络】NFS网络文件系统
    【C语言】函数不定长参数
  • 原文地址:https://www.cnblogs.com/memeflyfly/p/14310371.html
Copyright © 2020-2023  润新知