# 语句块
16.1 用大括号包裹多行代码块。 eslint:
nonblock-statement-body-position
(opens new window)// bad if (test) return false; // good if (test) return false; // good if (test) { return false; } // bad function foo() { return false; } // good function bar() { return false; }
16.2
if
表达式的else
和if
的关闭大括号在一行。 eslint:brace-style
(opens new window)// bad if (test) { thing1(); thing2(); } else { thing3(); } // good if (test) { thing1(); thing2(); } else { thing3(); }
16.3 如果
if
语句中总是需要用return
返回, 那后续的else
就不需要写了。if
块中包含return
, 它后面的else if
块中也包含了return
, 这个时候就可以把return
分到多个if
语句块中。 eslint:no-else-return
(opens new window)// bad function foo() { if (x) { return x; } else { return y; } } // bad function cats() { if (x) { return x; } else if (y) { return y; } } // bad function dogs() { if (x) { return x; } else { if (y) { return y; } } } // good function foo() { if (x) { return x; } return y; } // good function cats() { if (x) { return x; } if (y) { return y; } } // good function dogs(x) { if (x) { if (z) { return y; } } else { return z; } }