which is the best method used for checking isarray
which is the best method used for checking isarray
这个问题已经有了答案:
我想检查一个变量是否为数组?
哪种方法是最佳的用于得到更好的性能。
isArray
或
instanceof
admin 更改状态以发布 2023年5月21日
更好的使用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%。