호출할 때 매개변수의 개수가 고정적이지 않은 함수를 가변 매개변수 함수라고 부름
이러한 함수를 구현할 때는 나머지 매개변수라는 특이한 형태의 문법 사용
function 함수(...매개변수){
console.log(매개변수)
}
나머지 매개 변수를 사용하여 최소값 구하기
function min(...array){
let output = array[0]
for(const item of array){
if(output>item){
output = item
}
}
return output
}
const a = (142,25,235,243,11,245,1)
console.log(min(a))
출력 - 1로 나옴
일반적인 매개 변수와 나머지 매개 변수 조합
function 함수이름(매개변수, 매개변수, ...매개변수) {}
ex)
function total(a,b,...c){
console.log(a,b,c)
}
total(1) - 1, undefined, []
total(1,2) - 1, 2, []
total(1,2,3) - 1, 2, [3]
Array.isArray() : 배열인지 확인해주는 메소드 입니다.
매개변수로 배열을 넣는 경우와 숫자를 넣는 경우가 있지만, 다른 사람들이 만든 함수도 모두 그럴것이라는 보장은 없습니다.
자바스크립트는 배열을 전개해서 함수의 매개변수로 전달해주는 전개 연산자를 제공
함수 이름(...배열)
ex)
function sample(...items){
console.log(items)
}
const array = [1,2,3,4]
sample(array) -> 0인덱스에 1,2,3,4 출력됨
sample(...array) -> 0인덱스에 1 ... 3인덱스에 4가 출력됨
매개변수에 기본값을 지정해주는 것
함수 이름(매개변수, 매개변수 = 기본값, 매개변수 = 기본값)
function a(a=기본값,b) {} 매개변수는 왼쪽부터 입력해서
ex) 함수 이름 = earnings / 매개변수 : 이름(name) , 시급(wage) , 시간(hours)
function earnings(name,wage=8590,hours=40){
console.log(`# ${name} 님의 급여 정보`)
console.log(`- 시급 : ${wage}원`)
console.log(`- 근무 시간 : ${hours}`)
console.log(`- 급여 : ${wage*hours} `)
}
console.log('구름') - # 구름님의 급여 정보
- 시급 : 8590원
- 근무 시간 : 40시간
- 급여 : 343600원
console.log('별',10000) - # 구름님의 급여 정보
- 시급 : 10000원
- 근무 시간 : 40시간
- 급여 : 400000원
구 버전 자바스크립트에세 가변 매개변수 함수를 구현할 때는 배열 내부에 사용할 수 있는
특수한 변수인 arguments활용
funcrion sample(){
console.log(arguments)
for(let i =0; i<arguments.length; i++){
console.log(`${i}번째 요소 : ${arguments[i]}`)
}
}
sample(1,2)
출력
Arguments(2) [1,2, callee: f, Symbol(Symbol.iterator): f]
0번째 요소 : 1
1번째 요소 : 2
전개 연산자는 최신버전의 자바스크립트에 추가된 기능, apply()함수 사용
function sample(..items){
console.log(items)
}
const array = [1,2,3,4]
console.log(sample.apply(null,array))
출력
[1,2,3,4]
function earning (wage,hours){
wage = typeof(wage) != undefined ? wage : 8590
}
// wage 라는 매개변수 = wage의 자료형에 데이터가 할당되었을 때 참일땐 wage를 거짓일때 8690 ??