这样做是否有任何表现(或其他)影响;
// ...
const greeting = `Hello, ${name}!`;
return greeting;
Run Code Online (Sandbox Code Playgroud)
与此相比;
// ...
return `Hello, ${name}!`;
Run Code Online (Sandbox Code Playgroud)
是的,为变量名赋值,然后返回该变量比仅返回值需要更多的努力.有关迷你性能测试,请参阅:
(警告:以下内容将阻止您的浏览器,具体取决于您的规格)
// 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);Run Code Online (Sandbox Code Playgroud)
差异非常小,但它始终存在,至少在V8中 - 函数调用的开销大部分都掩盖了它.
也就是说,这听起来像是过早的优化 - 它可能更好地瞄准代码可读性和可维护性,然后在它们弹出时修复性能问题.如果声明返回值的名称使代码更容易阅读,那么这样做可能是个好主意,即使它使脚本需要(完全无关紧要的)更长的时间来运行.