#0. 파라미터 (= 매개변수, parameter)
- 함수 작성시 사용할 수 있는 특별한 형태의 변수다.
- 아래 함수에서 1번째줄 a,b가 파라미터이며,
- 함수호출시, 함수명(값1, 값2) 형태로 함수를 호출하고, 이때 a = 값1. b=값2 와 같은 형태로 함수가 돌아간다.
function 더하기(a, b) { // 여기 있는 a, b가 파라미터임
console.log(a+b);
}
더하기(1, 2) // a=1, b=2 로 대입하여, 더하기 함수를 실행하겠다.
#1. default 파라미터
- 파라미터는 기본값도 정할 수 있다.
- 그냥 파라미터 자리에 함수명(a=10) 과같은 형태로 사용되면, 호출시 argument가 비었을때 default값이 대입되어 함수가 실행된다.
- 아래 함수에서는 더하기(1) 형태로 함수를 호출했으므로, a=1, b는 default 로 정해둔 10이 대입되어 출력된다.
1. default 파라미터로 값넣기
function 더하기(a, b = 10) {
// b = 10 : b자리에 아무것도 안넣으면 10으로 출력해주셈
console.log(a + b);
}
더하기(1); // 출력결과 >> 11
// a = 1, b = 10 됨.
- 위와 같이 default 파라미터는 값을 넣을수도 있고, 연산도 넣을수도 있고, 함수도 넣을 수 있다.
2. default 파라미터로 연산 넣기
function 더하기2(a, b = 2 * a) {
console.log(a + b);
}
더하기2(1); // 출력결과 >> 3
// a = 1, b = 2 * 1 됨.
3. default 파라미터로 함수 넣기
- 아래 예제에서, 함수 호출시 b값을 지정하지 않았다면 b는 임시함수()에서 return된 값인 8이 대입된다.
function 임시함수() {
return 8;
}
function 더하기3(a, b = 임시함수()) {
console.log(a + b);
}
더하기3(1); // 출력결과 >> 9
// a = 1, b = 8 (리턴된값)
#2. ... Rest 파라미터
- argument들을 array형태로 가지고 오고 싶을때 사용
- 파라미터 자리에 ...파라미터 형태로 사용하면된다.
1. 사용법1 - argument 전체 가져오기
function RestParamFunc(...파라미터들) {
console.log(파라미터들);
}
RestParamFunc(10, 20, 30, 40); // 출력결과 >> [10, 20, 30, 40]
2. 앞에 몇몇 argument 제외하고 배열화
- 앞에 있는 몇몇 arguments를 제외하고, array로 만들수도 있다.
function RestParamFunc2(a, b, ...파라미터들) {
console.log(파라미터들);
}
RestParamFunc2(10, 20, 30, 40); // 출력결과 >> [30, 40]
3. 모든 argument들을 하나씩 콘솔창에 출력해주는 함수
- 반목문을 함께 활용하면 파라미터에 대입된 모든 argument를 하나씩 출력할 수도 있다.
function RestParamFunc3(...파라미터들) {
for (var i = 0; i < 파라미터들.length; i++) {
console.log(파라미터들[i]);
}
}
RestParamFunc3(10, 20, 30, 40); // 출력결과 >> 10 20 30 40
4. 주의사항
1) 가장 뒤에 써야함 (...파라미터들, a) -> 이런식으로 쓰면 안돼
function RestParamFunc4(...파라미터들, a, b) {
console.log(파라미터들);
}
RestParamFunc4(10, 20, 30, 40); // 출력결과 >> Uncaught SyntaxError: Rest parameter must be last formal parameter
2) 한번만 사용가능 (...파라미터들, ...파라미터들) -> 안돼
function RestParamFunc5(...파라미터들, ...파라미터들) {
console.log(파라미터들);
}
RestParamFunc5(10, 20, 30, 40); // 출력결과 >> Uncaught SyntaxError: Rest parameter must be last formal parameter
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] 객체지향1. Constructor = Object 뽑아내는 기계 (0) | 2023.06.23 |
---|---|
[JavaScript] Reference data type ( VS Primitive data type ) (0) | 2023.06.22 |
[JavaScript] ... Spread Operator = 괄호 벗겨주세요 (0) | 2023.06.20 |
[JavaScript] 문자조작에 유용한 tagged literals (0) | 2023.06.19 |
[JavaScript] this (0) | 2023.05.02 |