식별자, 변수
var testValue = 3
변수 = 데이터 3
식별자 = 변수명testValue
변수 선언과 데이터 할당
var str;
str = 'test!';
변수 영역 | 주소 | … | 1002 | 1003 | 1004 | 1005 |
---|
| 데이터 | | 이름: str | | | |
| | | 데이터 : 5004 | | | |
데이터 영역 | 주소 | … | 5002 | 5003 | 5004 | 5005 |
---|
| 데이터 | | 비어있지 않다고 가정 | 비어있지 않다고 가정 | ‘test!’ | |
- 왼쪽부터 쭉 오면서 빈 공간을 찾음 (1002)
- 비어있는 1002에 변수명 저장
- 데이터 영역에서 빈 공간 찾음 (5004)
- 5004 에 “test!”문자열 저장
- 5004의 주소를 변수 영역의 데이터에 저장
값을 바로 변수에 대입하지 않는 이유
- 자유로운 데이터 변환
- 숫자는 8byte 고정이지만 문자는 아님 그래서 이미 주소에 할당된 데이터를 늘리면 다 옆으로 밀어줘야 하기때문에 자유롭지 않게 됨 그래서 주소를 가지고 오는 방식 사용
- 메모리의 효율적 관리
- 1만개의 변수를 생성해 모든 변수에 숫자 1을 할당한다고 가정하면
- 1만개의 변수공간을 확보해야 하는데 변수영역에 별도 저장을 하게 되면 훨씬 적은 메모리를 사용할 수 있다.