반응형

nodejs version 8 미만에서는 함수 호출 파라미터에 trailing comma를 허용하지 않는다. 함수 호출 파라미터에서 trailing comma를 제거한다.

// < v8
myFunction(param1, param2) // ok
myFunction(param1, param2,) // SyntaxError: Unexpected token )

// > v8
myFunction(param1, param2) // ok
myFunction(param1, param2,) // ok

 

참고: trailing comma 사용 이유

 

다음과 같은 코드가 있다고 가정한다.

myFunction({
  param1: "param1"
});

myFunction 의 파라미터 객체에 새로운 값을 추가로 전달해야할 경우 다음과 같이 기존 코드에서도 diff가 발생한다.

myFunction({
  param1: "param1", // diff -- ','
  param2: "param2" // diff -- '  param2: "param2"'
});

이런 경우 실질적으로 작업한 내용은 새로운 값 추가임에도 불구하고 기존 코드의 수정사항이 함께 표시되기때문에 집중이 분산되고, 수정했다고 표시되는 라인의 수도 그만큼 늘어나게 된다.

파라미터 객체의 값 뒤에 comma를 추가하면 기능상에도 문제가 없고, VCS에서도 추가된 부분에 대해서만 깔끔한 diff를 얻을 수 있다.

myFunction({
  param1: "param1",
});

// 작업 후,
myFunction({
  param1: "param1",
  param2: "param2", // diff - '  param2: "param2",'
});

 

번외: 취향차이

어떤 개발자는 위와 동일한 이유로 comma를 앞에 찍기도 한다.

myFunction({
  param1: "param1"
});

// 작업 후,
myFunction({
  param1: "param1"
  , param2: "param2" // diff -- '  , param2: "param2"'
});

깔끔한 diff라는 결과는 얻을 수 있지만, 키 값의 세로 정렬이 불일치하게 되므로 나는 별로 선호하지 않는다.

 

반응형

+ Recent posts