원시값
var A = 10;변수에 원시값을 참조하는 참조값 할당
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 10 | |
| 3002 | ||
| 3003 | ||
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = 10;
A = 10 * 10;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3002 |
| 3001 | ||
| 3002 | 100 | |
| 3003 | ||
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
변수에 원시값을 참조하는 참조값 재할당
RESET
var A = 10;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 10 | |
| 3002 | ||
| 3003 | ||
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
변수에 원시값을 참조하는 참조값 할당
var A = 10;
var B = A;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A, B | 3000 | 3001 |
| 3001 | 10 | |
| 3002 | ||
| 3003 | ||
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
변수에 원시값을 참조하는 참조값 복사
var A = 10;
var B = A;
A = 10 * 10;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| B | 3000 | 3001 |
| 3001 | 10 | |
| A | 3002 | 3003 |
| 3003 | 100 | |
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
변수에 원시값을 참조하는 참조값 재할당
객체
var A = { state: "unchanged" };변수에 객체를 참조하는 참조값 할당
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3003 |
| 3003 | "unchanged" | |
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = { state: "unchanged" };
A.state = "changed";객체의 프로퍼티 변경
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3004 |
| 3003 | ||
| 3004 | "changed" | |
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = { state: "unchanged" };
A.state = "changed";
A.num = 3;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002, 3005 | |
| state | 3002 | 3004 |
| 3003 | ||
| 3004 | "changed" | |
| num | 3005 | 3006 |
| 3006 | 3 | |
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
객체의 프로퍼티 동적생성
※ 메모리주소는 바이트단위로 나눠진게 아닌 단순 번지수라 생각해주세요.
RESET
var A = { state: "unchanged" };변수에 객체를 참조하는 참조값 할당
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3003 |
| 3003 | "unchanged" | |
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
다른 변수에 참조값 복사
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3003 |
| 3003 | "unchanged" | |
| B | 3004 | 3001 |
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = { state: "unchanged" };
var B = A;var A = { state: "unchanged" };
var B = A;
A.state = "changed";객체의 프로퍼티 변경
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3005 |
| 3003 | ||
| B | 3004 | 3001 |
| 3005 | "changed" | |
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = { state: "unchanged" };
var B = A;
A.state = "changed";
B.num = 3;| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002, 3006 | |
| state | 3002 | 3005 |
| 3003 | ||
| B | 3004 | 3001 |
| 3005 | "changed" | |
| num | 3006 | 3007 |
| 3007 | 3 | |
| 3008 | ||
| 3009 | ||
| 3010 |
객체의 프로퍼티 동적생성
RESET
var A = { state: "unchanged" };변수에 객체를 참조하는 참조값 할당
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3001 |
| 3001 | 3002 | |
| state | 3002 | 3003 |
| 3003 | "unchanged" | |
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
참조값 재할당
| 식별자 | 메모리주소 | 값 |
|---|---|---|
| A | 3000 | 3004 |
| 3001 | ||
| state | 3002 | |
| 3003 | ||
| 3004 | 3005 | |
| isChanged | 3005 | 3006 |
| 3006 | false | |
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 |
var A = { state: "unchanged" };
A = { isChanged: false };END
deep-dive-week01
By Yongki Kim
deep-dive-week01
- 120