Versions

newline-before-return

Require an empty line before return statements

🔧 Fixable

Some problems reported by this rule are automatically fixable by the --fix command line option

此规则在 ESLint v4.0.0 中废弃,并被 padding-line-between-statements 规则取代。

在 JavaScript 中,关于 return 语句之前是否要有空行,没有硬性规定。然而,清楚地划定一个函数的返回位置可以大大增加代码的可读性和清晰度。比如说:

function foo(bar) {
  var baz = 'baz';
  if (!bar) {
    bar = baz;
    return bar;
  }
  return bar;
}

添加换行符可以明显地将返回语句与前几行分开,使其清楚地知道函数在哪里退出以及返回什么值。

function foo(bar) {
  var baz = 'baz';

  if (!bar) {
    bar = baz;

    return bar;
  }

  return bar;
}

规则细节

这条规则要求在 return 语句前有一个空行,以提高代码的清晰度,除非 return 在一个语句组中单独存在(如 if 语句)。在后一种情况下,不需要划分 return 语句,因为它是单独的。将忽略注释,并且不作为空行计算。

使用此规则的错误示例:

Open in Playground
/*eslint newline-before-return: "error"*/

function foo(bar) {
    if (!bar) {
        return;
    }
    return bar;
}

function foo(bar) {
    if (!bar) {
        return;
    }
    /* multi-line
    comment */
    return bar;
}

使用此规则的正确示例:

Open in Playground
/*eslint newline-before-return: "error"*/

function foo() {
    return;
}

function foo() {

    return;
}

function foo(bar) {
    if (!bar) return;
}

function foo(bar) {
    if (!bar) { return };
}

function foo(bar) {
    if (!bar) {
        return;
    }
}

function foo(bar) {
    if (!bar) {
        return;
    }

    return bar;
}

function foo(bar) {
    if (!bar) {

        return;
    }
}

function foo() {

    // comment
    return;
}

何时不用

如果你对 return 前是否要有空行没有硬性规定,你可以安全地禁用这一规则。

Version

This rule was introduced in ESLint v2.3.0.

Resources

更改语言