본 내용은 모던 자바스크립트 딥다이브 책을 읽고 공부목적으로 정리한 내용입니다.
1) 변수란 무엇인가?
변수 : 변하는 수? 라고만 생각했다.
변수 : 프로그래밍 언어에서
데이터를 관리하기 위한 핵심 개념
컴퓨터는 CPU를 사용해 연산을 하고, 메모리를 사용해 데이터를 기억함. 메모리는 데이터를 저장할 수 있는 메모리셀의 집합체. 메모리 셀 하나의 크기는 1바이트 (8비트)이며, 컴퓨터는 메모리 셀의 크기, 즉 1바이트 단위로 데이터를 저장하거나 읽음.
각 셀은 고유의 메모리 주소를 갖는다.
이 메모리 주소는 메모리 공간의 위치를 나타내며, 0 부터 시작해서 메모리의 크기만큼 정수로 표현됨.
컴퓨터는 모든 데이터를 2진수로 처리함.
따라서 메모리에 저장되는 데이터는 데이터의 종류와 상관없이 모두 2진수로 저장됨.
예제의 숫자 10과 20은 메모리상의 임의의 위치(메모리 주소)에 기억(저장)되고, CPU는 이 값을 읽어들여 연산을 수행함.
연산 결과로 생성된 숫자값 30도 메모리 상의 임의의 위치에 저장됨.
- 참고로 메모리에 저장되는 모든 값은 2진수로 저장됨.
변수 : 하나의 값을 저장하기 위해 확보한
메모리공간 자체또는 그
메모리 공간을 식별하기 위해 붙인 이름.
⇒ 값을 저장하고 참조하는 매커니즘으로,
값의 위치를 가리키는 상징적인 이름변수는 프로그래밍 언어의 컴파일러/ 인터프리터에 의해 값이 저장된 메모리 공간의 주소로 치환되어 실행됨.
이를 통해 개발자가 직접 메모리 주소를 통해 값을 저장하고 참조할 필요가 없고, 변수를 통해 안전하게 값에 접근할 수 있음.
변수에 값을 저장하는 것을 할당이라고 하고, 변수에 저장된 값을 읽어오는 것을 참조라고 함.
변수 이름을 식별자라고도 함.
식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말함.
변수 선언 : 변수를 생성하는 것.
값을 저장하기 위한 메모리 공간을 확보하고, 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것.
변수를 사용하려면 반드시 var/ let/ const
키워드를 통한 선언이 필요함.
변수를 선언한 이후, 아직 값을 할당하지 않은 경우,
변수 선언에 의해 확보된 메모리 공간에는 JS엔진에 의해 undefined라는 값(원시타입)이 암묵적으로 할당되어 초기화됨.
JS엔진은 변수선언을 2단계에 거쳐 수행함.
- 선언 단계 : 변수 이름을 등록해서 JS엔진에 변수의 존재를 알림.
- 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화함.
- 변수 이름은 어디에 등록될까
변수 이름을 비롯한 모든 식별자는 실행 컨텍스트에 등록됨.
실행 컨텍스트는 JS엔진이 소스코드를 평가하고 실행하기 위해 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역.
JS엔진은 실행 컨텍스트를 통해 식별자와 스코프를 관리함.
변수이름과 변수값은 실행 컨텍스트 내에
키-값 형식인 객체로 등록되어 관리됨.
Uploaded by Notion2Tistory v1.1.0