为什么没有块声明的箭头函数必须显式返回值
ES6 中引入的箭头函数简化了 JavaScript 函数的语法。但是,在返回值方面,它们的行为可能与常规函数不同。
考虑以下带有块声明的箭头函数(用大括号括起来):
const f = arg => { arg.toUpperCase(); };
调用此函数不返回值,导致 undefined 被打印到控制台:
console.log(f("testing")); // undefined
与常规函数不同,带有块声明的箭头函数不要隐式返回块表达式的结果。相反,需要显式返回语句来指定返回值。因此,箭头函数应写为:
const f = arg => { return arg.toUpperCase(); }; // Explicit 'return' statement
或者,可以简洁地声明箭头函数(不带块大括号)。在这种情况下,隐式返回箭头后面的表达式的结果:
const f = arg => arg.toUpperCase();
示例:
const f1 = arg => { return arg.toUpperCase(); }; // With explicit 'return' console.log(f1("testing")); const f2 = arg => arg.toUpperCase(); // Concise arrow function console.log(f2("testing"));
f1 和 f2 都返回大写字符串“TESTING”。通过了解带块声明和不带块声明的箭头函数之间的区别,您可以确保您的箭头函数返回预期值。
以上是为什么箭头函数在使用块声明时需要显式返回?的详细内容。更多信息请关注PHP中文网其他相关文章!