ECMAScript 기본 값과 참조 값
- 이전 페이지 ECMAScript 보존 키워드
- 다음 페이지 ECMAScript 원시 타입
ECMAScript에서는 변수가 원시 값과 참조 값 두 가지 유형의 값을 가질 수 있습니다.
원시 값과 참조 값
ECMAScript에서는 변수가 원시 값과 참조 값 두 가지 유형의 값을 가질 수 있습니다.
- 원시 값
- 스택(Stack)에 저장된 간단한 데이터 블록, 즉, 그들의 값은 변수 접근 위치에 직접 저장됩니다.
- 참조 값
- 스택(Heap)에 저장된 객체, 즉, 변수에 저장된 값은 객체가 저장된 메모리 위치를 가리키는 포인터(Point)입니다.
변수에 값을 할당할 때, ECMAScript의 해석 프로그램은 값을 원시 유형인지, 참조 유형인지�断해야 합니다. 이를 위해 해석 프로그램은 다음을 시도합니다.이 값이 ECMAScript의 원시 유형 중 하나인지즉, Undefined, Null, Boolean, Number, String 유형. 이러한 원시 유형은 공간이 고정되어 있기 때문에, 더 작은 메모리 영역 - 스택에 저장할 수 있습니다. 이렇게 저장하면 변수 값의 빠른 검색이 가능합니다.
많은 언어에서 문자열은 참조 유형으로而非 원시 유형으로 간주됩니다. 이는 문자열의 길이가 변할 수 있기 때문입니다. ECMAScript는 이 전통을 깨트렸습니다.
참조 유형의 값을 가진 값은 스택에서 할당되며, 참조 값의 크기가 변하기 때문에 스택에 저장할 수 없습니다. 그 대신, 변수 스택 공간에 저장된 값은 객체가 스택에 저장된 주소이며, 주소의 크기는 고정되어 있어 스택에 저장하여 변수 성능에 어떠한 부정적인 영향도 미치지 않습니다. 다음 그림과 같이:

원시 유형
이전에 설명한 것처럼, ECMAScript는 5가지 원시 유형(primitive type)을 가지고 있습니다. 즉, Undefined, Null, Boolean, Number, String이며, ECMA-262는 이 표현을유형(type)값의 집합으로 정의되며, 각 원시 유형은 포함하는 값의 범위와 리터럴 표현 형식을 정의합니다.
ECMAScript는 typeof 연산자를 통해 값을 특정 유형 범위에 포함되는지�断하기 위해 제공합니다. 이 연산자를 사용하여 값을 원시 유형으로 표현하는지, 그리고 원시 유형이 무엇인지�断할 수 있습니다.
다음 장에서는 ECMAScript의 원시 유형과 참조 유형에 대해 깊이 있게 설명해 드리겠습니다.
- 이전 페이지 ECMAScript 보존 키워드
- 다음 페이지 ECMAScript 원시 타입