版本

newline-before-return

要求在 return 語句前有一個空行

🔧 可修正

此規則報告的一些問題可以透過 --fix 命令列選項自動修正

此規則在 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 foo1(bar) {
    if (!bar) {
        return;
    }
    return bar;
}

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

此規則的正確程式碼範例

在線上測試中開啟
/*eslint newline-before-return: "error"*/

function foo1() {
    return;
}

function foo2() {

    return;
}

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

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

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

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

    return bar;
}

function foo7(bar) {
    if (!bar) {

        return;
    }
}

function foo8() {

    // comment
    return;
}

何時不該使用

如果您對於 return 語句前的空白沒有任何嚴格的約定,您可以安全地停用此規則。

版本

此規則在 ESLint v2.3.0 中引入。

資源

變更語言