JS

파라미터 값 array로 저장하는 기능 - arguments / rest

gurwhddl 2022. 9. 30. 21:46

function 더하기(a,b) {

console.log(a+b)

}

더하기(1) // 이렇게 파라미터 하나 빼먹어도 에러 안남

default parameter

파라미터의 디폴트값을 미리 설정해놓을 수 있음 - if문 ~~ 해서 해놓을 수도 있지만 간단하게 가능

(a, b = 10) // 파라미터 설정 안해놓은 경우 10으로 넣어짐 

더하기(1) // 11 

더하기(1,2) // 3 파라미터 제대로 넣었으면 저건 발동안함

다양한 수학연산자도 쓸 수 있음(ex. b = 2*a) 

 

함수도 쓸 수 있음

function 함수() {~~~~

return 10}

(a, b = 함수() )

 

중요한건 안썼을 때만 발동한다는거 - 제대로 쓰면 발동안함

 

arguments

 

function 함수(a,b,c) {

console.log(arguments) 

}

함수(1,2,3) - [1,2,3]이라는 array가 나옴

= arguments는 내가 입력한 모든 파라미터를 []안에 넣어줌 

array가 되니까 forEach같은것도 다 이용가능

 

 

Rest

arguments 대용으로 나온 문법

이것도 ...으로 나타내는데 중요한건 함수 파라미터 자리에 쓰이면 rest고 나머지는 다 괄호 없애주는 역할로 쓰임

 

 

function 함수(...파라미터) {

console.log(파라미터)

}

함수(1,2,3,4,5,6,7) // [1,2,3,4,5,6,7] 

이렇게 파라미터 자리에 넣은 값들을 array로 뽑아줌 - 여기까지는 arguments와 똑같지만 

rest는 내가 파라미터에서 뽑고 싶은 값들만 따로 지정할수가 있음

 

function 함수2(a,b,...파라미터) {

console.log(파라미터)

}

함수2(1,2,3,4,5,6,7) // [3,4,5,6,7] 

 

 

*for문 이용해서 하나씩 출력

function 함수(...rest) {

for (let i of rest) {console.log(i)}

}

 

주의점

rest 닉값에 맞게 (...rest,a,b) 이런거 안됨 - 무조건 rest가 맨 마지막에 와야됨