很多次使用Eslitn或其他整理工具时,我都会收到如下错误:
Err: // Expected to return a value at the end of arrow function
箭头功能是否总是必须返回值? 如果arrow函数必须返回一个值,这是什么原因?
例如,在这段特殊的代码中,如果没有通过条件,我不需要返回任何内容。无论如何,我的短毛狗朝我怒视着提到的错误。
const getCookie = name => {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length == 2)
return parts
.pop()
.split(';')
.shift();
};
答案 0 :(得分:2)
否,(箭头)函数不必返回任何东西,但是当函数不应该为空时(即期望返回值),从每个路径返回/返回某种默认值是一种很好的做法其他所有路径均失败。
const getCookie = name => {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length == 2) {
return parts
.pop()
.split(';')
.shift();
}
// default return, for example:
return false;
};
答案 1 :(得分:0)
箭头函数不必返回值。表达式需要返回值,而语句则不需要。也许尝试其他的linter。
答案 2 :(得分:0)
不。但是请注意,即使您不编写return,该函数也会默默地返回undefine。
答案 3 :(得分:0)
我会说:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
如果您在此处不使用块,则为隐式:
const implicit = i => i * 2;
但是如果您需要使用一个块,那么您需要添加一个返回值:
const explicit = (i) => {
if(i > 10) {
return i * 2;
}
return i;
}