Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

변수의 생명주기 본문

Programming Language/JavaScript

변수의 생명주기

scarecrow1992 2021. 3. 8. 15:48

1. 지역변수의 생명 주기

  • 생명주기(life cycle) : 변수의 메모리가 확보(allocate)된 시점부터 해제(release)되어 가용 메모리 풀(memory pool)에 반환되는 시점
  • 변수는 자신이 선언된 scope 내에서 생성되고 소멸된다.
    • 전역변수의 생명 주기 = 애플리케이션의 생명주기
    • 지역변수의 생명 주기 = 함수의 생명 주기
  • 호이스팅은 스코프를 단위로 작동한다.
1
2
3
4
5
6
7
8
9
kjjvar x = 'global';
 
function foo() {
    console.log(x); // undefined
    var x = 'local';
}
 
foo();
console.log(x);     // global
cs

 

 

2. 전역 변수의 생명 주기

  • 전역 코드는 코드가 로드되자마자 곧바로 해석되고 실행되고, 마지막 문이 실행되면 종료된다.
  • var 키워드로 선언한 전역변수는 전역 객체의 프로퍼티가 된다.
    • 전역 변수의 생명 주기는 전역 객체의 생명 주기와 일치한다.

 

전역 객체(global object)

- 코드가 실행되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성되는 특수 객체
    - 브라우저 : window
    - node.js   : global
- 환경에 따라 객체를 가리키는 다양한 식별자(window, self, this, frames, global)이 존재했으나 ES11(ECMAScript 11)에서 globalThis로 통일되었다.
- 표준 빌트인 객체(Object, String, Number, Function, Array...)와 환경에 따른 호스트 객체(클라이언트 Web API 또는 Node.js의 호스트 API), 그리고 var 키워드로 선언한 전역 변수와 전역 함수를 프로퍼티로 갖는다.

 

'Programming Language > JavaScript' 카테고리의 다른 글

프로퍼티 어트리뷰트  (0) 2021.03.08
전역 변수의 문제점  (0) 2021.03.08
스코프(scope)  (0) 2021.03.07
var와 let, const  (0) 2021.03.07
함수  (0) 2021.03.04
Comments