当前位置: 首页 > 编程笔记 >

JavaScript中的instanceof()和Array.isArray()方法有什么区别?

华俊弼
2023-03-14
本文向大家介绍JavaScript中的instanceof()和Array.isArray()方法有什么区别?,包括了JavaScript中的instanceof()和Array.isArray()方法有什么区别?的使用技巧和注意事项,需要的朋友参考一下

Array.isArray()方法是通用的,它可以在任何地方运行,而instanceof运算符不是通用的,它不能在新环境中工作。

语法1

Array.isArray(array);

语法2

array instance of Array;

在以下示例中,在未创建新环境的情况下,Array.isArrar()instanceof 都产生了相同的输出。

示例

<html>
<body>
<script>
   var a = [1,2,3,4,5];
   document.write(Array.isArray(a));
   document.write("</br>");
   document.write((a instanceof Array));
   document.write("</br>");
   var b = {}
   document.write(Array.isArray(b));
   document.write("</br>");
   document.write((b instanceof Array));
</script>
</body>
</html>

输出结果

true
true
false
false

现在,让我们尝试创建一个新的环境或新的框架,以检查instanceof 运算符是否在那里工作。

在下面的示例中,使用' iframe '(一个产生类似于对象的数组的frame属性)创建一个新框架。稍后,在该新框架中创建类似对象的数组,并通过这两个函数传递。由于instanceof 不是通用的,因此它认为框架数组不是实际的数组,并作为输出返回false  Array.isArray()返回true ,如输出所示。

示例

<html>
<body>
<script>
   var iframeE = document.createElement('iframe');
   iframeE.style.display = "none";
   document.body.appendChild(iframeE);
   iframeArray = window.frames[window.frames.length - 1].Array;
   var a = new Array(1,2,3,"hi",4, "hello");
   var b = new iframeArray(1,2,3,4);
   document.write(Array.isArray(a));
   document.write("</br>");
   document.write(a instanceof Array);
   document.write("</br>");
   document.write(Array.isArray(b));
   document.write("</br>");
   document.write(b instanceof Array);
</script>
</body>
</html>

输出结果

true
true
true
false
 类似资料:
  • 问题内容: 以下哪个更好? 要么 我知道的唯一区别是,当“ a”为null时,第一个返回false,而第二个抛出异常。除此之外,它们是否总是给出相同的结果? 问题答案: 使用时,您需要B在编译时知道类。使用时,它可以是动态的,并且可以在运行时更改。

  • 问题内容: 以下哪个更好? 要么 我知道的唯一区别是,当“ a”为null时,第一个返回false,而第二个抛出异常。除此之外,它们是否总是给出相同的结果? 问题答案: 使用时,你需要B在编译时知道类。使用时可以是动态的,并且可以在运行时更改。

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,

  • 问题内容: 我发现自己使用JavaScript,并且遇到了和属性。我想知道它们之间有什么区别。也是一个比另一个更好? 问题答案: 了解这是Element的属性。1只有Elements具有,并且这些子元素都是Element类型的。2 但是,这是Node的属性。可以包含任何节点。3 一个具体的例子是: 大多数情况下,您想使用它,因为通常您不想在DOM操作中遍历Text或Comment节点。 如果确实要

  • 问题内容: 我想知道JavaScript 和之间的区别。 问题答案: 在JavaScript中,表示变量已被声明但尚未分配值,例如: 是分配值。可以将其分配给变量,以表示没有值: 从前面的示例中可以明显看出,和是两个不同的类型:是类型本身(未定义),而是对象。 和

  • 问题内容: 我一直想知道 为什么? 是JScript和JavaScript之间的区别。 问题答案: 真正的ECMAScript只是不同的名称。约翰·雷西格(JohnResig)有一个很好的解释。 以下是完整的版本明细: IE 6-7支持JScript 5(相当于ECMAScript 3,JavaScript 1.5) IE 8支持JScript 6(与ECMAScript 3,JavaScript