newline-before-return

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

关于 JavaScript 中的 return 语句之前是否应该有空行,并没有硬性规定。但是,清楚地描述函数返回的位置可以大大提高代码的可读性和清晰度。例如:

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

添加换行符明显地将 return 语句与前几行分开,明确函数退出的位置以及它返回的值:

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

  if (!bar) {
    bar = baz;

    return bar;
  }

  return bar;
}

规则详情

此规则要求 return 语句之前有一个空行以增加代码清晰度,除非 return 单独位于语句组中(例如 if 语句)。在后一种情况下,return 语句不需要单独描述。注释被忽略,不计为空行。

此规则的错误代码示例:

/*eslint newline-before-return: "error"*/

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

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

h+1Jf/rEEE6yYiKhWnK/aHl9/UYIfowckm44qhmqvwwaWj0QX+JXnab7YJgxSmDw

/*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;
}

何时不使用

GlGdWnAJPwyhQj26bOPrhJl3qZKWqMSlXYRro6VsA9d88fvmb1mO1+s324Ln18aI1pzs6XlRQGVR3tPLqCM6UCfnAKuFr+Vb7gLWW9VsqZorYkq2nh7zoy1YA6sIWLlJj1YH0kkE5wO788RvIzS7z8+Wc8p0Jn4pWUfWZh392fY=