728x90
- 원시 타입의 값 : 변경 불가능한 값(
Immutable value
)- 변수에 할당하면 메모리 공간에 실제 값이 저장됨
- 원시 값을 가진 변수를 다른 변수에 할당 --> 원시 값이 복사됨(
pass by value
)
- 객체 타입의 값 : 변경 가능한 값(
Mutable value
)- 변수에 할당하면 메모리 공간에 참조 값이 저장됨
- 객체를 가리키는 변수를 다른 변수에 할당 --> 참조 값이 복사됨(
pass by reference
)
- 두 타입의 변수는 모두 값이 있는 메모리 공간의 주소를 전달 --> 변수에 대해서는
pass by reference
라고 볼 수 있음 - 두 타입의 값은 결국 식별자가 알고있는 메모리 공간의 값을 복사 --> 데이터에 대해서는
pass by value
라고 볼 수 있음
원시 타입의 값
- 변경이 불가능하다는 것은 값 자체가 변경될 수 없다는 의미(
Immutability
) - 재할당과 값 자체의 변경은 다름
- 상수는 재할당이 금지된 변수
- 원시 값을 가진 변수는 재할당으로만 값을 교체할 수 있음
- 문자열을 제외하고 메모리 공간의 크기가 정해져 있음
객체 타입의 값
-
변경이 가능한 값(
Mutable value
) --> 객체를 수정할 수 있음 -
확보해야 할 메모리 공간의 크기를 정해둘 수 없음
-
변수의 메모리 주소를 통해서 메모리에 접근하면 참조 값을 확인
-
객체를 수정할 때, 재할당을 하지 않으면 참조 값은 변하지 않음
-
여러 개의 식별자가 1개의 객체를 참조할 수 있음
-
객체 리터럴은 평가될 때마다 새로운 객체를 생성함
학습 도서
- '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스
'Language | Basic > JavaScript' 카테고리의 다른 글
[JavaScript 스터디] 스코프 (0) | 2021.01.24 |
---|---|
[JavaScript 스터디] 함수 (0) | 2021.01.23 |
[JavaScript 스터디] 객체 리터럴 (0) | 2021.01.22 |
[JavaScript 스터디] 데이터의 타입 변환, 단축 평가 (0) | 2021.01.22 |
[JavaScript 스터디] 제어문 (0) | 2021.01.22 |