사실 쉼표 연산자는 MDN에 나와있는 것처럼 한 줄로 정리된다.
쉼표 연산자는 각각의 피연산자를 왼쪽에서 오른쪽 순서로 평가하고, 마지막 연산자의 값을 반환한다.
다음 예제를 보면 확실하게 이해할 수 있다.
let x = 1, y = 2, z = 3;
console.log(x, y, z);
// 마지막으로 실행한 것 반환
console.log(
(++x, y += x, z *= y)
);
//결과는 12
let a = (obj, value) => {
obj+=value;
obj+=value;
return obj;
}
a(1,2); // 5
정말 자주 쓰는 map()
이나 reduce()
고차함수에서도 요긴하게 쓰일 수 있다.
let arr = [1,2,3,4,5];
let aa = arr.reduce((obj,value) => {
obj+=value;
return obj
}, 0);
let bb = arr.reduce((obj,value) => (obj+=value, obj), 0);
console.log(aa); // 15
console.log(bb); // 15
이처럼 간단한 실행 코드를 콤마 연산자로 표현하면 코드 줄 수를 확실히 줄인다는 장점이 있다.
콤마연산자는 코드를 한줄로 간단히 줄일수는 있지만, 가독성에서는 그리 좋지 못한 문법이다.
그래도 이런 스타일의 자바스크립트 코딩을 하는 사람들이 꽤 되기에, 권장되지는 않지만 코드를 읽으려면 일단 배워두는 것이 좋다.
참고자료 : comma-operator(MDN),
https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%BD%A4%EB%A7%88%EC%97%B0%EC%82%B0%EC%9E%90-a-b-c