몽땅뚝딱 개발자

[Javascript] Argument 처리 본문

Development/Javascript

[Javascript] Argument 처리

레오나르도 다빈츠 2021. 7. 7. 21:06

출처

 

자바스크립트 중고급: 근본 핵심 이해 - 인프런 | 강의

4개 강좌로 구성된 자바스크립트 바이블 강좌의 2번째 강좌입니다. 자바스크립트 엔진 이해를 통해 자바스크립트에 최적화된 프로그램을 개발할 수 있습니다. 자신 있게 시스템을 설계할 수 있

www.inflearn.com

 

 


 

🚀 Argument 처리 메커니즘

 

Argument 처리 구조

함수가 호출되면 함수 안에서 우선 argument object를 만들고, 파라미터를 {key:value} 형태로 저장한다.

key가 없기 때문에 파라미터 수 만큼 0부터 인덱스를 부여하여 그 인덱스를 key로 사용한다.

파라미터로 받은 값을 value에 설정한다.

{0: param1, 1: param2}이 형태이다.

 

이 형태를 'Array-like'라고 부르며, array처럼 처리될 수 있다는 의미인 듯 하다.

- key값이 0부터 1씩 증가해야 한다.

- length 프로퍼티가 있어야 한다.

 

function get() {
    return arguments;
}

console.log(get("A", "B"));

[실행 결과]
{0: A, 1: B}

 

 


 

 엔진의 파라미터 처리 (※ 함수의 초기화 단계에서 진행)

1. get() 함수를 호출하여 2개의 파라미터를 넘겨준다.

 

2. 넘겨받은 값을 함수의 파라미터 이름에 설정한다.

파라미터 이름: one, 값: 10이면 one:10 형태로 정적환경의 선언적 환경레코드에 설정한다.

 

3. argument object를 생성한다.

- length 프로퍼티에 넘겨받은 파라미터의 수를 설정

- 파라미터 수 만큼 반복하며 {0: 10}, {1: 15}... 형태로 파라미터 값을 설정

 

 

'Development > Javascript' 카테고리의 다른 글

[Javascript] 호이스팅(Hoisting)  (0) 2021.07.07
[Javascript] 스코프(Scope)  (0) 2021.07.07
[Javascript] 오버로딩(Overloading)  (0) 2021.07.07
[Javascript/ES6+] Arrow Function  (0) 2021.07.07
[Javascript/ES6+] const 변수  (0) 2021.07.07
Comments