funcrion sum(a, b) {
return a + b
}
console.log(sum(1, 2)) // 3
console.log(sum(7)) // NaN
funcrion sum(a, b = 1) {
return a + b
}
console.log(sum(1, 2)) // 3
console.log(sum(7)) // 8
매개 변수로 들어와야할 데이터가 들어오지 않으면 사용할 기본 값을 지정해줄 수 있다.
const user = {
name: "jigu",
age: 85
}
function getName(user) {
const { name } = user
return name
}
console.log(getName(user)) // jigu
const user = {
name: "jigu",
age: 85
}
function getName({ name }) {
return name
}
console.log(getName(user)) // jigu
두번째 코드와 같이 매개변수에서 구조 분해 할당을 하면 첫번 째 코드보다 간략하게 코드를 짤 수 있다.
const fruits = ['Apple', 'Banana', 'Cherry']
function getSecondItem([, b]) {
return b
}
console.log(getSecondItem(fruits)) // Banana
function sum(**...rest**) {
console.log(rest)
return rest.reduce(function (acc, cur) {
return acc + cur
}, 0)
}
7, 8)
]
console.log(sum(1, 2)) // 3
console.log(sum(1, 2, 3, 4)) // 10
console. log(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) // 55
...rest
처럼 매개변수에 전개 연산자를 이용해서 나머지 매개 변수로 사용할 수 있다.
나머지 매개 변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.
arguments
객체는 함수에 전달된 인수에 해당하는 Array
형태의 객체이다.
유사 배열 (Array-Like)라고도 한다. 언제든지 함수에서 사용할 수 있다.
arguments
는 배열 처럼 메소드를 사용할 수 없어서 선언부가 없어서 직관적으로 파악하기 힘들어 나머지 매개변수를 쓰는 것이 권장된다.