与多个 if 语句相比, array.includes 对性能有负面影响吗?

Chr*_*ian 3 javascript

我已经养成了使用 Array.includes 代替较长 if 语句的习惯。

例如

let varibale = 'a';
if ['b', 'c', 'd'].includes(variable) ...
Run Code Online (Sandbox Code Playgroud)

代替

let varibale = 'a';
if variable === 'b' || variable === 'c' || variable === 'd' ...
Run Code Online (Sandbox Code Playgroud)

我想知道这是否会对性能产生显着的负面影响或任何其他技术缺陷?

Raj*_*esh 5

Array.includes总是会慢一些,但不会慢很多。

那是因为,你有一些变量,使用它们你将创建一个动态变量,它是一个数组。然后它会在内部循环并进行查找以进行测试。

然而,增益很小,几乎不重要:

以下是JSPerf 链接


那么用什么,我的建议是使用Array.includes。是的,它速度较慢,但​​可维护且易于阅读。大多数捆绑器(如 webpack 或 gulp)都会进行内部优化,但重要的是可读性。如果开发人员必须花一点时间来理解代码,那么浪费时间,你将很难获得性能提升。另外,人类是与代码交互最多的人,所以我的建议是具有可读性。