这样做对性能(或其他方面)有影响吗?
// ...
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/