which is the best method used for checking isarray

29 浏览
0 Comments

which is the best method used for checking isarray

这个问题已经有了答案:

如何在JavaScript中检查变量是否为数组?

我想检查一个变量是否为数组?

哪种方法是最佳的用于得到更好的性能。

isArray

instanceof

admin 更改状态以发布 2023年5月21日
0
0 Comments

更好的使用Array.IsArray。

同时,请参阅此链接:instanceof considered harmful (or how to write a robust isArray)

当涉及运行在多帧DOM环境中的脚本时,问题就出现了。简而言之,一个iframe中创建的Array对象与在另一个iframe中创建的数组不共享[[Prototype]]。它们的构造函数是不同的对象,因此instanceof和构造函数检查都失败:

您还可以检查两者之间的速度变化,您会发现isArray相对更快。

以下是检查速度变化的链接:-Array.isArray vs instanceof Array

以下代码用于检查速度变化:


使用Array.IsArray:

(Array.isArray(a) && (Array.isArray(s) || Array.isArray(f)));

它执行了近25,255,693次/秒

现在使用instanceof:-

 (a instanceof Array && (s instanceof Array || f instanceof Array));

它执行了近21,594,618次/秒

即,instanceOf比使用IsArray慢15%。

0
0 Comments

大牌们(Jquery,underscore)就是这样做的:

  isArray = Array.isArray || function(obj) {
    return Object.prototype.toString.call(obj) == '[object Array]';
  };

但是,实际上你根本不需要这样做。不要“检查”你的变量-只需要了解它们就可以了。

0