Javascript
[nodejs] SyntaxError: Unexpected token )
cs09g
2020. 9. 16. 11:31
반응형
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라는 결과는 얻을 수 있지만, 키 값의 세로 정렬이 불일치하게 되므로 나는 별로 선호하지 않는다.
반응형