声明变量JavaScript的性能含义

时间:2018-12-04 09:36:59

标签: javascript

这样做是否对性能有影响?

// ...
const greeting = `Hello, ${name}!`;
return greeting;

与此相比;

// ...
return `Hello, ${name}!`;

1 个答案:

答案 0 :(得分:5)

是的,为变量名分配一个值,然后返回该变量比简单地返回值要花费更多的时间。有关迷你性能测试,请参阅:

(警告:根据您的规格,以下内容会阻塞您的浏览器一段时间)

// references to "name" removed to provide a more minimal test:

const p0 = performance.now();
for (let i = 0; i < 1e9; i++) {
  (() => {
    const greeting = `Hello!`;
    return greeting;
  })();
}
const p1 = performance.now();
for (let i = 0; i < 1e9; i++) {
  (() => {
    return `Hello!`;
  })();
}
const p2 = performance.now();

console.log(p1 - p0);
console.log(p2 - p1);

差异很小,但至少在V8中一直存在,差异很大。函数调用的开销大大掩盖了它。

也就是说,这听起来确实像是过早的优化-最好是针对代码的可读性和可维护性 ,然后然后修复 if and when < / em>他们弹出。如果声明返回值的名称使代码更易于阅读,那么这样做可能是一个好主意,即使这会使脚本花费(完全无关紧要)的更长的运行时间。