Array instanceof Array 为false let array=[1,2,3];array instanceof Array 为ture,两者的区别
时间: 2024-05-29 11:12:02 浏览: 62
Array instanceof Array 是判断Array这个构造函数是否为Array类型,显然结果为false,因为Array不是Array类型本身的实例。而let array=[1,2,3];array instanceof Array 是判断array变量所引用的对象是否为Array类型的实例,结果为true,因为array变量引用了一个Array类型的实例。
相关问题
Array instanceof Array为false;let arr=[1,2,34] ;arr instanceof Array为true的原理
Array instanceof Array为false的原因是因为Array也是一个对象,而不是一个数组实例。当我们使用typeof操作符检查Array时,会返回"function",这表明它是一个函数对象,而不是一个数组对象。
而arr instanceof Array为true的原因是因为arr是一个数组实例,它继承了Array对象的属性和方法。在JavaScript中,instanceof操作符可以用来检查一个对象是否是某个类的实例。在这种情况下,我们可以通过arr instanceof Array来检查arr是否是一个数组实例。如果是,返回true,否则返回false。
Array instanceof Array为false;let arr=[1,2,34] ;arr instanceof Array为true;Objeect instanceof Object为true的原理
instanceof 运算符用于检查一个对象是否是一个特定类型(或者是该类型的子类型)的实例。它的原理是基于原型链的。每个对象都有一个原型链,它是一个指向该对象父类的链。instanceof 运算符会检查该对象的原型链上是否存在指定的构造函数(或者其子类的构造函数),如果存在,则返回 true,否则返回 false。
例如,Array.prototype 是数组的原型,因此 Array instanceof Array 为 false,因为数组的原型不是数组本身。而 let arr=[1,2,34] ;arr instanceof Array 为 true,因为 arr 是数组类型的一个实例,其原型链上存在 Array.prototype。
同样地,Object.prototype 是所有对象的原型,因此 Object instanceof Object 为 true,因为 Object 是对象类型的一个实例,其原型链上存在 Object.prototype。
阅读全文