为函数返回一个值(“undefined”)的值是什么,不需要显式返回任何内容?
为什么这是一个规则,它会捕获哪些错误?
你可以阅读有关ESLint的“一致回报”规则here(回答“什么”,而不是“为什么”)。
你可以阅读关于堆栈溢出的原因javascript functions implicitly returns undefined的推测性分析。
答案 0 :(得分:4)
有些语言区分功能和程序。在C-alikes中并非如此,但以这种方式设计子程序仍然是个好主意。
linter并不希望你总是回复一些东西"。它只是告诉你,如果你设计一个函数(而不是过程),它必须返回任何有意义的东西(理想情况下,所有返回的值必须是相同的类型)。
示例:
function is_visible(object)
是一个函数,它应该返回一个值(在这种情况下是一个布尔值)并且可以在表达式中使用。在另一边
function make_visible(object)
是一个程序,它不应该返回任何内容而不能在表达式中使用 - 它总是一个声明。
这样的设计(以及相关的linter警告)极大地帮助防止这样的错误(取自一些随机网页):