함수와 파라미터 (arguments)
: 자바스크립트의 파라미터 특징과 기능
- 파라미터의 개수와 관계없이 함수나 메서드의 이름이 같다면 호출가능
- 파라미터의 개수와 불일치하여 값을 받지 못하는 파라미터는 undefined 처리
- 값을 받아오지 못하는 파라미터가 undefined 일 경우, 별도로 파라미터에 기본값을 설정할 수 있음
=> optional parameter 옵셔널 파라미터 - 모든 파라미터를 관리하는 arguments라는 프로퍼티를 이용하여 파라미터를 배열에 담아 사용할 수 있음
- 프로토 타입의 속성(프로퍼티)을 사용하는 방식
(단, 옵셔널 파라미터는 저장하지 않는다) - 옵셔널 파라미터는 다른 파라미터보다 항상 뒤에 있어야함
사용
function testFun(p1, p2, p3, p4, p5=1){
console.log(arguments); //Arguments(5)
console.log(arguments.length); // 5 개수
return p1 + p2 - p3 * p4 / p5;
}
console.log(testFun(1,2,3,4,5));
// (1+2-3*4/5) Arguments(5), 5, 0.600..
console.log(testFun(1,2,3,4));
// (1+2-3*4/1) Arguments(4), 4, -9
//---------------------------------------------------------------------------
function myFun(x, px){
let y = px;
if(y == undefined){
y=2; //옵셔널
}
console.log(x,y);
}
function myFun2(x, y=2){
console.log(x,y);
}
myFun(1);
rest parameter : 나머지(이외의, 남는것들) 파라미터
- 사용할 파라미터는 일반 파라미터로 배정하고, 나머지 파라미터들을 통합하여 하나의 이름으로 배정하는 기법
function restFun(a, b, ...others){
console.log(others);
for(const arg of others){
console.log(`arg: ${arg}`);
}
}
restFun(1,2,3,4,5,6,7,8,9);
... : spread 연산자
- 배열이나 객체를 복제하는 경우 사용
let oldArr = ['a', 'b', 'c', 'd', 'e'];
let newObj = {...oldArr};
console.log(oldArr);
console.log(newObj);
spread 전개 함수
- 사용시, 이미 다 들어가 있는 배열이여야함!
function sum(x, y, z){
return x+y+z;
}
let num = [1, 2, 3];
console.log( sum(...num) ); // 6
'JS > JS 공부' 카테고리의 다른 글
[JS] 비표준 속성 non_standard (0) | 2023.04.20 |
---|---|
[JS] 비동기통신 ( async await ,promise Chain ) (0) | 2023.04.20 |
[JS] JSON 데이터입출력 (0) | 2023.04.19 |
[JS] class, 객체, 생성자 (0) | 2023.04.18 |
[JS] try~catch 예외 처리 (0) | 2023.04.18 |