인프런 커뮤니티 질문&답변

iternity님의 프로필 이미지
iternity

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+

전개 연산자

나머지연산자의 사용법에 대해 질문있습니다.

작성

·

213

1

github에 있는 functional es 코드를 보는중에 정말 이해가 안되는부분이 있어 질문드립니다.

  const aa = (a, ...before) => go(
        a,
        a => a + 3,
        ...before, // <--- before에 걸리는 함수가 있으면 여기에 추가될 예정
        a => a + 6,
        console.log);

    aa(1);

...before 이런 기법을 통해서 앞으로 올 함수들과 조합할 수 있다고 하셨는데요. go가 중간에 []를 만나게되서 에러가 나야되지않나요? 실제로 디버깅해보면 문제없이 작동하고 go가 받은 인자들을 reduce로 넘길때 ...before은 무시됩니다. 그래서 ...before대신에 []을 그냥 넣어봤더니 이번엔 에러가 납니다.
go나 reduce내부에서 []나 undefined를 만났을때 다루는 코드가 있나? 하고 코드를 봤더니 그런것도 없습니다.

왜 ...연산자를 통해 받은 ...before만 go의 내부에서 reduce함수로 갈때 무시되는건가요?

답변 2

1

유인동님의 프로필 이미지
유인동
지식공유자

[1, ...[], 2] 의 결과가 [1, 2] 입니다.

...before 대신에 ...[] 를 넣으시면 에러가 나지 않습니다.

감사합니다.

0

iternity님의 프로필 이미지
iternity
질문자

답변 감사합니다. before가 []니까 ...[]로 들어가야되는군요. 이런 멍청한 질문올려서 죄송합니다.

iternity님의 프로필 이미지
iternity

작성한 질문수

질문하기