Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- partitioning
- PostgreSQL
- node.js
- node.js란
- EventSource
- 파티셔닝
- mariadb
- localStorage
- Partition
- Lag
- 성장기
- 개발자
- ServerSentEvent
- SSE
- Node.js기본
- frontend
- 실시간알림
- 열공하자
Archives
- Today
- Total
써치킴의 우당탕탕 개발 블로그
[JS Level up][Ch1][데이터] 불변성 본문
데이터 불변성(Immutability)
- 원시 데이터(JS에서 사용할 수 있는 기본 데이터) : String, Number, Boolean, undefined, null
- 참조형 데이터 : Object, Array, Function
원시 데이터 불변성
// 원시 데이터 불변성(Immutability)
let a = 1;
let b = 4;
// a가 바라보는 메모리 주소(ex.1번지)와 b가 바라보는 메모리 주소(ex.2번지)가 다르기 때문에 false
console.log(a, b, a === b);
b = a; // b는 a의 메모리 주소(1번지)를 바라보게 됨
console.log(a, b, a === b); // true
a = 7; // 7은 새로운 데이터기 때문에 a는 새로운 주소(3번지)를 바라보게 됨
console.log(a, b, a === b);
let c = 1; // 1은 기존 데이터이기 떄문에 1번지를 바라봄
console.log(a, b, a === c);
원시 데이터가 기존 메모리 주소에 들어있다면 기존 메모리 주소를 바라본다.
> 원시 데이터는 항상 불변한다. -> 원시 데이터는 생긴 것이 같으면 같은 데이터, 다르면 다른 데이터다.
참조 데이터 불변성
// 참조 데이터 불변성
let a = {k : 1};
let b = {k : 1};
// a, b가 바라보는 메모리 주소가 다르다 > false
console.log(a, b, a === b);
a.k = 7;
b = a; // b는 a의 메모리 주소를 바라보게 됨
console.log(a, b, a === b); // true
a.k = 2; // a, b는 같은 메모리 주소를 바라보기 때문에 둘다 k가 2가 됨
console.log(a, b, a === b); // true
let c = b; // c는 b의 메모리 주소를 바라보게 됨
console.log(a, b, a === c);
a.k = 9; // a, b, c 모두 k가 9가 됨
console.log(a, b, a === c);
참조형 데이터는 불변성이 없다. -> 복사되는 개념이 아닌 메모리의 참조 주소만 옮겨간다.
'파도파도 나오는 JavaScript' 카테고리의 다른 글
[JS Level up][Ch2][데이터 실습] 가져오기, 내보내기 (0) | 2022.01.31 |
---|---|
[JS Level up][Ch1][데이터] 얕은 복사와 깊은 복사 (0) | 2022.01.31 |
[JS Level up][Ch1][데이터] 전개 연산자 (0) | 2022.01.31 |
[JS Level up][Ch1][데이터] 구조 분해 할당 (0) | 2022.01.31 |
[JS Level up][Ch1][데이터] 객체 (0) | 2022.01.29 |
Comments