javascript - 声明变量 JavaScript 的性能影响

标签 javascript

这样做对性能(或其他方面)有影响吗?

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

与这样做相比;

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

最佳答案

是的,为变量名赋值然后返回该变量比简单地返回值需要稍微更多的努力。有关小型性能测试,请参阅:

(警告:以下内容将阻止您的浏览器一段时间,具体取决于您的规范)

// 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 它们弹出。如果为返回值声明一个名称使代码更易于阅读,那么这样做可能是个好主意,即使这会使脚本运行(完全无关紧要)的时间更长。

关于javascript - 声明变量 JavaScript 的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53609756/

相关文章:

javascript - 带 setTimeout 的递归函数

javascript - 通过 javascript/jquery 将类/id 添加到包含特定文本的 div

javascript - 如何将任务添加到当前方法?

javascript - 为什么<nav>标签中有一些未知的属性

php - 使用 JavaScript 或 PHP 自动检测用户当前本地时间

javascript - PMT功能支付类型

javascript - jQuery ui-datepicker-trigger 错误 : 'J.inline' is null or not an object (happens on Mouseover)

javascript - Angular Bootstrap UI 评级系统 - 使用 ng-model 更改最大值

javascript - 在 React Native 中渲染 2 个列表

javascript - 如何为特定的输入按钮指定action属性?