Indentation – 들여쓰기


논리적으로 종속되어 있는 코드를 쓸 때, 종속된 code block는 주인 code block보다 두 칸 들여쓰기 합니다.
들여쓰기를 할 때 탭이 아닌 스페이스를 사용하세요. 탭은 안됩니다.

Naming – 이름 짓기


1. Boolean names – Boolean 이름

Boolean에 관한 변수의 이름은 전형적인 형식을 가집니다. Boolean 값은 참 혹은 거짓이므로, 관련 변수의 이름 앞에 is 혹은 are를 붙입니다.
예: isValid 또는 areAvailable

2. Capital letters in variable names – 변수 이름에서의 대문자

변수가 포함한 class를 지시하기 위해 변수 이름의 첫 글자를 대문자로 씁니다.
상수(constant), 즉 프로그램 전체에서 일정한 값을 가지는 변수의 이름을 정할 때는 그 변수의 이름은 전체를 대문자로 씁니다.

Symbols / punctuation - 기호 / 구두점찍기


1. 중괄호를 생략하지 마십시오 (문법적으로 생략 가능한 때에도)

Good:
for (key in object) {
  alert(key);
}

Bad:
for (key in object)
  alert(key);

2. Quoting - 인용

JavaScript의 문자열을 쓸 때, 그 처음과 끝에는 작은 따옴표를 주로 쓰세요. 큰 따옴표 말구요! 작은 따옴표를 쓰면 HTML을 쉽게 삽입할 수 있습니다. HTML은 태그 속성에 주위에 큰 따옴표를 붙이기 때문입니다.

줄 바꿈이 필요한 문자열을 정의할 때는 \n 대신 ` 를 사용하는 것도 한 방법입니다.

let multilineText = \`this is line one
this is line two
this is line three\`;

Operators and keywords - 연산자와 키워드


1. 엄격한 비교 연산자를 사용하세요

== 혹은 != 를 사용하는 경우, 의도치 않게 비교 대상의 type이 변하여 비교 연산이 실행될 수 있습니다. 그러므로 반드시 ===!== 를 사용하세요.

2. 3항 연산자 (x ? y : z)

x ? y : z;

x가 참이면 y를, 거짓이면 z를 실행합니다.
3항 연산자는 code를 compact하게 만듭니다. 그러나 읽기 어렵기 때문에 아주 짧고 명확한 코드를 쓸 때만 3항 연산자를 사용하세요.

3. switch 구문

switch 구문은 break 구문 누락으로 인해 오류가 발생하기 쉽기 때문에 사용을 권장하지 않습니다.

짧게 쓰기


1. 되도록 부정을 사용하지 마세요.

너무 많은 부정을 사용해서 코드를 작성하게 되면, 명확성이 떨어질 수 있습니다.

2. Boolean 결과값을 바로 return하세요

Boolean 값을 조건문의 결과값으로 return하는 대신 바로 return 하세요

3. 주석

주석을 쓰기보다는 명확한 변수이름과 함수이름을 쓰는 것이 좋습니다.
코드 구조와 이름을 제대로 작성했다면 코드 자체의 "story"(데이터 흐름과 처리과정)를 충분히 전달할 수 있습니다. 주석으로 "story"를 전달하려는 것은 좋지 않은 방법입니다.
주석은 코드를 쓴 이유 즉, 코드의 목적을 설명해야 합니다. 코드가 어떻게 작동하는지를 설명하면 안됩니다.

4. Snake vs. Camel Casing - 뱀 모양 vs 낙타 모양

JavaScript에서는 변수의 이름을 지정할 때 'Camel Casing'으로 지정합니다. 이것은 Ruby 같은 다른 프로그래밍 언어에서 사용하는 'Snake Casing'과 다릅니다.

Good:
let camelCased = 'Used in javascript';

Bad:
let snake_cased = 'Used in other languages';

JavaScript에서 '뱀 모양'을 사용하는 경우는, 상수 이름을 지을 때입니다.

const MAX_ITEMS_IN_QUEUE = 100;

참조

코드스테이츠 Pre Courses
NHN 코딩 컨벤션
idiomatic.js