개발/Javascript

Eslint로 배운 자바스크립트 코딩 컨벤션 (에어비엔비 베이스)

웹 개발자 권혁진 2022. 9. 13. 23:41

괄호 안에는 룰 이름을 적어두겠습니다.

 

변수 관련

 

- 변수 네이밍 => camelCase 예시 const someData = { id : 1 }

 

- var 는 사용하지 않을 것 ( no-var ),

    권고 방법 :

   선언한 변수에 값이 변경되는 일이 없다면  => const 사용,  변경 되는 일이 있다면 => let 사용

 


함수 관련

 

1.  (class-methods-use-this)  클래스 메소드에서 this 키워드를 사용하지 않을 경우

   => static 메소드로 변경해주거나 this 키워드를 사용

 

 

2. (arrow-parens) arrow function의 파라미터가 한개일 경우 괄호 제거 권고

const someFunction = (someVar) => { } => 파라미터가 한개일 경우 괄호 제거 권고

  권고 방법 : 

const someFunction = someVar => { }

 

//2022-09-26 추가

 

3. (no-param-reassign) 넘겨받은 파라미터를 재정의하지 말것

 

예시 :

const someFunction = param => {
	param++
	console.log(param)
}

someFunction(1)

권고 방법 :

const someFunction = param1 => {
	let param2 = param1
	param2++
	console.log(param2)
}

someFunction(1)

 


오브젝트 관련

 

1. (object-shorthand)

const someObject = {

      id : id,

      name : name,

      someFunction : function () {}

}

 

 오브젝트의 키 이름과 변수명이 같을 경우, 또 오브젝트 안에 함수가 들어갈 경우

권고 방법 :

const someObject = {

      id,

      name,

      someFunction () {}

}

 

키이름만 적어주고

 

함수의 경우에도 생략하고 바로 함수선언을 할 것을 권고함.


비동기 관련 

 

1. (no-await-loop) : 반복문 안에서 await 키워드 사용 중단 권고

 

for (const data of dataList) {

	await fetchData(data)

})

 

권고 방법 :

 

1-1.  for await 문 사용 // 차례차례 비동기 통신이 끝날때까지 대기함

for await (const data of dataList) {

    await fetchData(data)

})

 

1-2. Promise.all로 한번에 비동기 통신처리

const awaitList = dataList.map(data => fetchData(data)) // ( pending 상태의 promise들을 반환한다는 가정 )

await Promise.all(awaitList) // 한번에 비동기 처리

 

--2022-09-17 추가--


strict 관련

 

1. (strict): es5,6에선 use strict 사용 지양

 

es5,6에선 이미 기본적으로 엄격하게 검사가 되고 있기 때문에 명시하지 않아도 됩니다.

 

 

 

생각나는대로 업데이트 하겠습니다 혹시나 제가 틀린 부분이 있다면 지적 부탁드립니다.