在JavaScript中,instanceof Array比isArray好吗?

在JavaScript中,instanceof Array比isArray好吗?,javascript,arrays,instanceof,Javascript,Arrays,Instanceof,从这两个员额: 有几种方法可以检查一个对象是否是数组 数组的变量实例 Array.isArray(变量) 有人告诉我第二种方法比第一种好。有人能说出它的原因吗?在某些情况下,obj instanceof Array可能为false,如果obj是一个Array 但是,在某些边缘情况下,您必须小心使用instanceof, 尤其是当你在写一个库的时候,你的控制力就更少了/ 了解它将在其中运行的环境。问题是 如果您在多窗口环境中工作(框架, iframes),您可能会收到另一个用户的日期d(例

从这两个员额:

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

  • 数组的变量实例

  • Array.isArray(变量)


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

    在某些情况下,
    obj instanceof Array
    可能为false,如果
    obj
    是一个
    Array

    但是,在某些边缘情况下,您必须小心使用instanceof, 尤其是当你在写一个库的时候,你的控制力就更少了/ 了解它将在其中运行的环境。问题是 如果您在多窗口环境中工作(框架, iframes),您可能会收到另一个用户的日期d(例如) 窗口,在这种情况下,d instanceof Date将为false-因为d prototype是另一个窗口中的Date.prototype,而不是 运行代码的窗口中的Date.prototype。在大多数情况下 如果你不在乎,你只想知道它是否拥有所有 在上面写上日期,这样你就可以使用它了

    资料来源:

    本例也适用于数组对象等


    ECMAScript标准建议的查找
    对象类的标准方法是使用
    对象中的
    toString
    方法。prototype
    isArray(变量)
    在内部使用它

    第二个在较旧的浏览器中不可用,但在可用的情况下,从iframe中点击instanceOf misses的数组。