함수와 매개변수에 대해서
자바스크립트에서 함수는 하드코딩되어있는 값으로 정적인 결과를 표출해내는 것에서 벗어나 사용자에게서 나온 값을 가지고 동적인 결과를 표출해낼 수 있는 중요한 개념이다.
이 함수가 실행되는 원리에 대해서 알아보면, 우선 함수는 호출되어 실행된다. 함수 호출은 위 이미지처럼 함수 이름과 괄호로 이루어지며, 필요한 경우 인수를 전달할 수 있다. 이렇게 함수가 호출되면 실행 컨텍스트가 생성되는데, 실행 컨텍스트는 함수의 실행 환경을 추상화한 개념으로, 해당 함수의 변수, 매개변수, 함수 내의 코드 등을 포함한다. 이 실행 컨텍스트 내부에서 함수의 변수와 매개변수가 초기화되는데, 변수는 메모리에 할당되고, 매개변수는 전달받은 인수로 초기화된다. 함수 내에서 선언된 변수는 초기화되지만, 값이 할당되기 전까지는 undefined로 설정된다.
이렇게 변수 및 매개변수 초기화 후에는 함수 내의 코드가 실행된다. 함수 코드는 순차적으로 실행되며, 각 문장은 결과를 생성하거나 다음 문장으로 제어를 전달한다. 함수 내에서 다른 함수를 호출하는 경우, 해당 함수의 실행 컨텍스트가 생성되고 위 단계를 반복한다. 이렇게 함수 실행을 완료하면 반환 값을 생성하고, 해당 값을 호출한 곳으로 반환한다. 반환 값이 없다면 undefined가 반환된다.
함수 실행이 완료되면 해당 실행 컨텍스트는 제거된다. 제거되는 동안 함수가 반환한 값이 호출 지점으로 전달되고, 이전 실행 컨텍스트로 돌아간다. 호출 스택에서는 마지막에 호출된 함수가 가장 먼저 실행 컨텍스트를 제거하는 후입선출의 원칙이 적용된다.
위 이미지의 괄호 안의 num1과 num2를 매개변수라고 하는데, 이 매개변수는 함수에 전달되는 값을 받는 변수이다. 함수를 호출할 때 매개변수에 값을 전달하여 함수 내부에서 사용할 수 있다.
매개변수는 함수에 필요한 데이터를 전달할 수 있다. 함수는 이러한 전달받은 값을 활용해서 원하는 작업을 수행하거나 계산을 처리할 수 있다. 예를 들어, 두 수를 더하는 함수에 첫 번째 수와 두 번째 수를 매개변수로 전달하여 함수 내부에서 이 값을 사용할 수 있다.
또, 매개변수를 사용하면 함수가 다양한 인수를 받을 수 있다. 함수를 정의할 때 매개변수의 개수와 형식을 지정할 수 있으며, 함수 호출 시 전달되는 인수의 개수와 위치에 따라 다른 동작을 수행할 수 있다. 이를 통해 함수의 유연성과 재사용성을 높일 수 있다.
그리고 매개변수는 함수 내부에서 사용되는 값의 의미를 명확하게 전달할 수 있다. 적절한 이름과 설명을 가진 매개변수는 코드의 가독성을 향상시키고, 다른 개발자들이 함수를 이해하고 유지 보수할 때 도움을 준다. 또, 매개변수에 기본값을 지정할 수 있는데, 이를 통해 함수 호출 시 인수가 전달되지 않았을 때 기본값이 사용되어 함수가 오류 없이 실행될 수 있다. 이 기본값 설정은 ES6부터 도입된 기능이다.

'자바스크립트' 카테고리의 다른 글
프로그래밍에서의 추상화 (2) | 2024.01.14 |
---|---|
map과 forEach의 차이 (0) | 2023.09.12 |
typeof 연산자, defer와 async (0) | 2023.06.08 |
parseInt, parseFloat, ++이나 --연산자의 위치, 배열과 객체 (0) | 2023.06.07 |
자바스크립트 소개, 역사 (0) | 2023.06.05 |