- [JS] 매개변수 예제2024년 08월 14일
- KIMJAVAN
- 작성자
- 2024.08.14.오전10:08
728x90function add(a, b) { console.log('1.', arguments); console.log('2.', arguments[0]); console.log('3.', typeof arguments); return a + b; } console.log('4.', add(1, 3, 5, 7));
이 코드에서 add 함수는 매개변수 a와 b를 받아 두 값을 더하는 단순한 함수입니다. 그런데 이 함수는 arguments 객체를 통해 전달된 모든 인자를 확인하고 있습니다.
- arguments 객체는 함수가 호출될 때 전달된 모든 인자를 배열 형태로 담고 있습니다. (하지만 실제 배열은 아니며 배열처럼 동작하는 유사 배열 객체입니다.)
코드 실행 순서:
- add(1, 3, 5, 7) 함수가 호출됩니다.
- a = 1, b = 3으로 할당되고, 나머지 5, 7은 arguments 객체에 저장됩니다.
- console.log('1.', arguments);
- 함수 내에서 arguments 객체를 출력합니다.
- 이 경우 1. [1, 3, 5, 7]이 출력됩니다.
- console.log('2.', arguments[0]);
- arguments[0]은 첫 번째 인자인 1을 출력합니다.
- 이 경우 2. 1이 출력됩니다.
- console.log('3.', typeof arguments);
- arguments의 타입은 'object'이므로 3. object가 출력됩니다.
- return a + b;
- a + b를 계산합니다. 1 + 3 = 4가 됩니다.
- console.log('4.', add(1, 3, 5, 7));
- add(1, 3, 5, 7) 함수의 반환 값인 4를 출력합니다.
- 이 경우 '4.'과 함수 반환 값 4이 함께 출력됩니다.
- 4. 4가 출력됩니다.
출력이 이렇게 되는 이유
console.log('4.', add(1, 3, 5, 7)); 라인에서 먼저 add 함수가 호출되어 console.log들이 순차적으로 실행된 후, a + b의 결과인 4가 반환됩니다. 그리고 이 반환된 값 4가 console.log('4.', 4);로 출력되는 것입니다.
따라서 출력은 다음과 같은 순서로 이루어집니다
1. [1, 3, 5, 7] 2. 1 3. object 4. 4
즉, 4. 4는 console.log('4.', add(1, 3, 5, 7)); 라인의 4.와 add 함수가 반환한 4가 같이 출력된 것입니다.
'자바스크립트 > JavaScript' 카테고리의 다른 글
[JS] 생성자함수 new 와 create 차이 (0) 2024.08.19 [JS] 키의 동적 사용 (0) 2024.08.19 [JS] switch ~ case / 배열로 true false 처리 (0) 2024.08.12 [JS] 숫자에 3자리 단위로 쉼표 붙여주기 (0) 2024.04.01 [JS] QuerySelector / classList (1) 2024.01.24 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)