Code convention: JavaScript

Airbnb convention을 참고했습니다.

0. 기본 명명 규칙

  • 객체, 함수, 인스턴스는 camelCase
  • 클래스, 생성자는 PascalCase
  • 참조를 this에 저장하지말고 화살표함수나 bind 함수를 사용합시다.
  • 파일 이름은 default export의 이름과 일치해야 합니다.
  • 두문자어와 이니셜은 모두 대문자이거나 모두 소문자입니다.

1. 변수, 참조

  • 변수를 선언할 때는 항상 constlet을 사용하세요. 이렇게 하지 않으면 전역 변수로 선언됩니다.
  • 모든 참조에는 var대신 const를 사용하세요.
    - 참조를 재할당 할 수 없게 함으로써, 이해하기 어려운 & 버그로 이어지는 코드를 방지합니다.
  • 만약 참조를 재할당 해야 한다면 var 대신 let을 사용하세요
    - var처럼 함수스코프를 취하는 것보다는 블록스코프를 취하는 let이 더 낫습니다.
  • letconst 는 둘 다 블록스코프라는 것을 유의하세요.
    - const와 let은 선언된 블록 안에서만 존재합니다.

2. 문자열

  • 문자열에는 작은 따옴표 ''를 사용한다.
  • 100자가 넘는 문자열은 개행 없이 이어쓴다.(문자열 연결’+’ 을 이용해 여러 줄에 걸쳐 쓰지 말라는 뜻.)
    - 문자열이 끊기면 작업하기 어렵고, 코드를 찾기 어려워집니다.
  • 문자열을 생성하는 경우 문자열 연결 대신 템플릿 문자열을 쓴다.
  • 절대로 문자열에 eval()을 사용하지 마세요. 너무나 많은 취약점을 만듭니다.
  • 문자열에 불필요한 이스케이프 문자를 사용하지 마세요.
    - 백슬래시는 가독성을 해치기 때문에 필요할 때만 사용해야 합니다.

3. 함수 (중요)

  • 함수 선언식 대신 기명 함수 표현식을 사용합시다 (함수선언은 호이스트되므로….)
  • 함수 이외의 불록(if, while, 등)에서 함수를 선언하지 마세요. 브라우저는 이를 허용하겠지만, 모두 다르게 해석합니다.
  • ECMA-262 명세는 블록을 구문의 일종으로 정의하고 있지만 함수선언은 구문이 아닙니다.
  • 함수의 인자를 변조하기 보다는 기본 매개변수 문법을 사용하세요.
  • 절대로 매개변수를 바꾸지 마세요. (재할당도 x)

4. 화살표 함수(중요)

  • 익명함수를 사용할 때는 화살표 함수 표현을 사용하세요.
    - 화살표 함수는 그 컨텍스트의 this에서 실행하는 버전의 함수를 만듭니다. 이것은 보통 원하는대로 작동하고, 보다 간결합니다.
  • 표현식이 여러 줄에 걸쳐 있을 때는 가독성을 높이기 위해 소괄호로 감싸주세요.
    - 함수의 시작과 끝 부분을 알기 쉽게 해주기 때문입니다
  • 항상 인자를 괄호로 감싸세요 (인자가 한 개 뿐이라도)
    - 인자 추가, 제거시 변경사항이 최소화됩니다.
  • 암시적 반환을 하는 화살표 함수 몸체의 위치를 적절히 설정하세요.

5. 제어문(중요)

  • 만약 if 블록이 항상 return 구문을 실행시킨다면, else 블록은 불필요합니다. return을 포함한 if블록을 잇는 else if 블록 안에 return 구문이 있으면 여러 if블록으로 나눠질 수 있습니다.
  • 제어문 (if, while 등)이 너무 길거나 최대 길이를 넘긴 경우, 각 조건을 새로운 줄에 두세요. 논리 연산자는 줄의 시작부분에 있어야 합니다.
  • let, const, function, class 선언을 포함하는 casedefault구문 안에 블록을 만들 때는 괄호를 사용하세요

6. 비구조화

  • 하나의 객체에서 여러 속성에 접근할 때는 객체 비구조화를 사용하세요.
  • 여러 값을 반환하는 경우 배열 비구조화가 아닌 객체 비구조화를 사용하세요.

7. 호이스팅

var 선언은 할당없이 가장 가까운 함수 스코프의 꼭대기에 호이스트됩니다. constlet 선언은 Temporal Dead Zones (TDZ)라고 불리는 새로운 개념의 혜택을 받습니다. 왜 typeof는 더 이상 안전하지 않은가에 대해서 알고있는 것이 중요합니다.

온-디바이스 마이데이터 앱

온-디바이스 마이데이터 앱