我有一些代码可以解析数百个对象(来自网络请求)。然后,此代码将调用函数以查看其是否与值匹配。
即
(1..100+){
isMatch(foo);
}
function isMatch(foo) {
const matches = ["apple", "orange", "strawberry"];
return matches.includes(foo);
}
我的问题是JS如何处理正在创建的“匹配”数组。 isMatch函数可能被调用100次以上。它是否每次都在内存中不断实例化此数组,还是会自动对其进行缓存?还是因为阵列和GC的大小,这真的不是内存问题吗?
另外,使用array.includes和regex进行实际匹配之间是否存在性能差异?
最佳答案
const
是scoped to the function,因此一遍又一遍地被创建和销毁。如果您有固定列表,请在更广泛的范围内声明它,或者直接在isMatch
中引用它,或者将其作为参数传递,例如isMatch(foo, LIST_OF_MATCHES)