함수를 밖에서 안으로 값으 전달할 때 사용
function params(food) {
console.log(`I like ${food}!`);
}
params(beef);
1) 파라미터의 기본 값
function params(food = 'peaches') {
console.log(`I like ${food}!`);
}
params();
함수의 파라미터에 아무 값을 주지 않아도 기본적으로 peaches가 출력된다.
2) 파라미터 기본값의 성질
function params(food = 'peaches', beverage) {
console.log(`I like ${food}!`);
console.log(`I like ${beverage}!`);
}
params(soju); // 기본값과 상관없이 첫번째 아규먼트에 값이 들어가고 두번째 아규먼트는 undfined로 나타난다.
기본값을 주고 싶을때 가급적 오른쪽에 작성
params(undefined, soju)// undefined를 주면 기본값이 들어간다.
3) 파라미터에서 파라미터를 활용
function params(x, y = x+3) {
console.log(`x: ${x}`);
console.log(`I like ${beverage}!`);
}
params(2);
x의 값이 2면 y의 값에 x가 적용이되어 y의 값은 5가 된다.
파라미터에 전달된 값을 아규먼트에 넣는다.
파라미터가 3개일 때
1개의 값만 넣으면 나머지 값이 undefined로 나타나고
파라미터의 값보다 초과하여 넣으면 초과된 값은 무시당한다.
이 때 arguments 객체를 사용할 수 있는데
function argu ( a, b, c) {
console.log(a)
console.log(b)
console.log(c)
console.log(arguements)
console.log(------)
}
argu('I', 'live', 'in', 'NY')
argu('I')
argu('I', 'live', 'in')
argu('I', 'live')
이때 console.log(arguements)는 유사배열의 형태로 값을 나타낸다. length, [i] 등을 사용할 수 있다.
console.log(arguements.length)
console.log(arguements[0])
그리고 for ...of 문을 통해 반복작업도 가능하다.
function argu ( a, b, c) {
for (const arg of arguments) {
console.log(arg);
}
}
를 사용하면 전달되는 값의 길이에 따라 유연하게 변화가 가능하다.
function argu ( ...args) {
for (const arg of args) {
console.log(arg);
}
}
argument 객체 대신 ...args를 사용 (마침표 세개가 핵심)
function argu (first, second, ...others) {
console.log(`우승: ${first}`)
console.log(`준우승: ${second}`)
for (const arg of others) {
console.log(`참가자: ${others}`);
}
}
for문을 안쓰고 바로 console.log(version.splice(0,1)) 이런 식으로도 사용가능
이런 식으로 사용할 수 있다. 첫번째 두번째 아규먼트는 파라미터롤 전달되고 나머지는 rest parameter로 사용
일반 argument보다 더 활용성이 있다.