Keep else statements on the same line as their curly braces.
eslint: brace-style
이거는 취향 차이이긴 한데, 그냥 standard 따라가는 것도 괜찮을 듯. 개인적으로는 두번째 꺼가 더 맘에 들긴 한다.
// ✓ ok
if (condition) {
// ...
} else {
// ...
}
// ✗ avoid
if (condition) {
// ...
}
else {
// ...
}
Always handle the err
function parameter.
eslint: handle-callback-err
이건 함수 안에 err 파라미터가 없으면 오류인 건가?
nodejs에서의 Error-first Callback을 핸들링하기 위한 룰셋인 거 같은데, This rule was deprecated
in ESLint v7.0.0. Please use the corresponding rule in eslint-plugin-node
라는 거 보니 이미 eslint 룰셋에서도 없는 룰이라 사용할 필요가 있을까 싶다.
// ✓ ok
run(function (err) {
if (err) throw err
window.alert('done')
})
// ✗ avoid
run(function (err) {
window.alert('done')
})
For var declarations, write each declaration in its own statement.
eslint: one-var
이 룰을 적용하지 않는다면 코드 길이는 짧아지겠지만, 여러 변수를 한 줄에 선언하면 헷갈릴 위험이 있을 듯 하다.
// ✓ ok
var silent = true
var verbose = true
// ✗ avoid
var silent = true, verbose = true
// ✗ avoid
var silent = true,
verbose = true
Trailing commas not allowed.
eslint: comma-dangle
백엔드에서는 두 가지 근거로 이 룰을 선택하지 않았다.
var obj = {
message: 'hello', // ✗ avoid
}
No semicolons.
eslint: semi
window.alert('hi') // ✓ ok
window.alert('hi'); // ✗ avoid
Use camelcase when naming variables and functions.
eslint: camelcase
function my_function () { } // ✗ avoid
function myFunction () { } // ✓ ok
var my_var = 'hello' // ✗ avoid
var myVar = 'hello' // ✓ ok
No function declarations in nested blocks.
eslint: no-inner-declarations
if (authenticated) {
function setAuthUser () {} // ✗ avoid
}
Avoid mixing spaces and tabs for indentation.
eslint: no-mixed-spaces-and-tabs
Avoid string concatenation when using __dirname
and __filename
.
eslint: no-path-concat
const pathToFile = __dirname + '/app.js' // ✗ avoid
const pathToFile = path.join(__dirname, 'app.js') // ✓ ok
Initializing to undefined
is not allowed.
eslint: no-undef-init
let name = undefined // ✗ avoid
let name
name = 'value' // ✓ ok
No flow control statements in finally
blocks.
eslint: no-unsafe-finally
try {
// ...
} catch (e) {
// ...
} finally {
return 42 // ✗ avoid
}
Use isNaN()
when checking for NaN
.
eslint: use-isnan
if (price === NaN) { } // ✗ avoid
if (isNaN(price)) { } // ✓ ok