반응형
반응형
변수의 생명주기 변수는 호이스팅에 의해 가장 먼저 실행된다 전역 변수가 아닌 지역 변수일 경우, 함수가 실행된 직후 먼저 실행이 된다. 즉 지역 변수의 생명 주기는 함수의 생명 주기와 같다. 하지만 지역 변수가 함수보다 오래 생존하는 경우도 있다. 변수의 생명 주기는 메모리 공간의 확보 > 메모리 공간이 해체 > 가용 메모리 풀에 반환 되는 시점을 말한다. 따라서 변수는 자신이 등록된 스코프가 소멸(메모리 해체)될 때 까지 유효하다. 할당된 메모리 공간은 더 이상 그 누구도 참조하지 않을 때 가비지 콜렉터에 의해 해체> 가용 메모리 풀에 반환된다. 아래의 내용을 이해하자. var x = 'global' function foo(){ console.log(x); var x = 'local' } foo(); ..
스코프는 프로그래밍 언어의 기본 개념. 식별자 자신을 참조할 수 있는 유효한 범위 스코프 체인 중첩 함수와 같이 지역 스코프도 중첩될 수 있다. (지역이 곧 함수 몸체를 말하고, 지역은 지역 스코프를 만들기 때문) 모든 스코프는 하나의 계층적 구조로 연결 되어있다. 최상위 스코프는 전역 스코프다. 참조하는 코드의 스코프에서 시작하여 상위 스코ㅡ로 이동하면서 선언된 변수를 검색한다. 스코프 체인은 실행 컨텍스트의 렉시컬 환경을 단방향으로 연결한 것이다. 전역 렉시컬 환경은 코드가 로드되면 곧바로 생성되고 함수의 렉시컬 환경은 함수가 호출되면 곧바로 생성된다. 함수도 식별자에 할당되기 때문에 변수를 검색할 때 사용하는 규칙 보다는 식별자를 검색하는 규칙이 좀 더 적합 함수 레벨 스코프 대부분의 프로그래밍 언..
함수란? 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것. 함수 정의를 통해 생성. 함수 표현식 자바 스크립트의 함수는 객체타입의 값. 즉 일급 객체 일급 객체이므로 함수 리터럴로 생성한 함수 객체를 변수에 할당할 수 있다. 함수 생성 시점과 함수 호이스팅 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있다. (호이스팅) 하지만 함수 표현식으로 정의한 함수는 이전에 호출 불가능. 함수 선언문으로 정의한 함수와 함수 표현식으로 정의한 함수의 생성 시점이 다르기 때문. 변수 선언은 런타임 이전에 실행되어 undefined로 초기화 된다. 함수 표현식의 함수 리터럴은 할당문이 실행되는 시점에 평가되기 때문에 이전에 호출 불가능. 따라서..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.