【问题标题】:Is instanceof Array better than isArray in JavaScript?JavaScript 中的 instanceof Array 是否比 isArray 更好?
【发布时间】:2015-05-01 00:03:28
【问题描述】:

来自这两个帖子:

有几种方法可以检查一个对象是否为数组

  1. variable instanceof Array

  2. Array.isArray(variable)

有人告诉我第二种方法比第一种方法好。有没有人能说出原因?

【问题讨论】:

  • 第二个在旧版浏览器中不可用,但在可用的地方,从 instanceOf 未命中的 iframe 中命中数组。

标签: javascript arrays instanceof


【解决方案1】:

否。在某些情况下obj instanceof Array 可能为假,即使objArray

不过,在某些极端情况下,您必须小心使用 instanceof, 特别是如果您正在编写一个库,因此控制较少/ 了解它将在其中运行的环境。问题是 如果您在多窗口环境中工作(框架, iframes),您可能会收到来自另一个的 Date d (例如) 窗口,在这种情况下 d instanceof Date 将为假——因为 d 的 原型是另一个窗口中的 Date.prototype,而不是 运行代码的窗口中的 Date.prototype。而在大多数 你不在乎的情况,你只想知道它是否有所有的 在上面注明日期,以便您可以使用它。

来源:Nifty Snippets

这个例子,也适用于数组对象等等。

ECMAScript 标准建议的查找Object 类的标准方法是使用Object.prototype 中的toString 方法,isArray(variable) 在内部使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 2016-02-26
    • 2014-12-01
    • 2019-04-26
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多