Search

변수

4.1 변수란?

데이터를 저장한 공간의 위치(주소 값)
할당 : 변수에 값을 저장 하는 것
참조 : 변수에 저장된 값을 불러 들이는 것

4.2 식별자

어떤 값을 구별해서 식별할 수 있는 고유한 이름 (ex. 변수)

4.3 변수 선언

변수 선언이랑 변수를 생성하는 것으로, var, let, const 키워드를 사용
JS엔진은 번수 선언을 2단계로 수행
1.
선언 단계 : 변수 이름을 등록해 JS엔진에 변수 존재 등록 → 실행 컨텍스트에 등록
2.
초기화 단계 : 메모리를 확보하고 암묵적으로 undefined 할당으로 초기화
var 키워드의 경우 선언과 초기화가 동시에 진행
만약 선언되지 않은 번수를 참조 시 ReferenceError(참조 에러)가 발생

4.4 변수 선언의 실행 시점과 변수 호이스팅

JS의 경우 인터프리터 언어이므로 한 줄씩 읽어나가는 방식인데 만약 변수가 뒤에 선언되어져 있더라도 참조 에러가 아닌 undefined가 출력됩니다.
실행 준비 단계에서 모든 선언문들을 먼저 찾아내 실행 컨텍스트에 넣기 때문입니다. 이렇게 변수의 선언문이 코드의 맨 위로 올라가는 것을 변수 호이스팅 이라고 합니다.
컴파일 언어 : 소스코드를 한번에 빌드 후 실행 인터프리터 언어 : 소스코드를 한줄씩 읽어가며 실행

4.5 값의 할당

변수 선언은 런타임 이전에 실행되지만 할당은 런타임에 실행됩니다. 단 메모리 공강을 지우고 새롭게 할당하는 방식이 아닌 새로운 공간을 확보하고 그곳에 값을 저장하는 방식이므로 주소 값이 달라집니다.
console.log(score); score = 80; var score; console.log(score); //undefined // 80
JavaScript
복사

4.6 값의 재할당

값을 재할당 할 경우 기존에 사용했던 메모리는 어떤 식별자와도 연결되어 있지않아, GC에서 자동으로 해제된다.

4.7 식별자 네이밍 규칙

_, $로 시작가능
숫자로 시작 불가능
예약어는 사용 불가
대소문자는 별개의 변수