매개변수(parameter)
- 함수 정의 시, 매개변수의 타입 명시 X
- 함수 호출 시, 인수에 대한 타입 검사도 X
- 함수의 정의보다 적은 수의 인수가 전달되어도 오류 X => 자동으로 undefined 설정
매개변수(parameter) : 함수 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수
인수(argument) : 함수 호출 시, 함수로 전달해주는 값
function addNum(x, y, z) {
return x + y + z;
}
addNum(1, 2, 3); // 1+2+3 = 6
addNum(1, 2); // 1+2+undefined = NaN
addNum(1); // 1+undefined+undefined = NaN
addNum(); // undefined+undefined+undefined = NaN
- x, y, z 가 undefined 일 경우의 조건문을 이용하면 계산 가능
arguments 객체
- 함수 정의보다 더 많은 수의 인수가 전달되었을 때 유용
- 인수의 총 개수를 확인 & 각 인수에 바로 접근 O
- 함수 호출 시, 전달된 인수를 배열의 형태로 저장
function addNum() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
addNum(1, 2, 3); // 1+2+3 = 6
addNum(1, 2); // 1+2 = 3
addNum(1); // 1
addNum(); // 0
addNum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 55
- Array 객체와 비슷할 뿐 실제로 같지는 X
- 인덱스 이용 + length 프로퍼티 이용만 가능
디폴트 매개변수(default parameter)
- ES6 부터 정의된 매개변수
- 함수 호출 시, 인수를 전달하지 않았을 경우 사용하게 될 기본값
- 원래는 undefined
function mul(a, b = 1) {
return a * b;
}
mul(3, 4); // 12
mul(3); //3
- IE, 사파리, 오페라에서 지원 X
나머지 매개변수(rest parameter)
- ES6 부터 정의된 매개변수
- 생략 접두사(...)를 이용해 특정 위치의 인수부터 마지막 인수까지 한 번에 지정
function sub(firstNum, ...restArgs) {
for (let i = 0; i < restArgs.length; i++) {
firstNum -= restArgs[i];
}
return firstNum;
}
sub(10, 2, 3); // 10 - 2 - 3 = 5
sub(10, 1, 5, 8); // 10 - 1 - 5 - 8 = -4
- IE, 사파리에서 지원 X
http://tcpschool.com/javascript/js_function_parameterArgument
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 객체 (0) | 2021.10.29 |
---|---|
[JavaScript] 함수 - 미리 정의된 전역 함수 (0) | 2021.10.28 |
[JavaScript] 함수 - 변수/함수의 유효 범위 (0) | 2021.10.28 |
[JavaScript] 함수의 기초 (0) | 2021.10.24 |
[JavaScript] 배열 (0) | 2021.10.24 |
댓글