불변성과 가변성
불변성과 가변성은 그 데이터가 원시형인가 참조형인가에 따라 갈리는 성질이다. 객체(object), 배열(array), 함수(function)이 참조형 데이터에 해당된다. 이를 제외한 데이터는 원시형에 해당된다.
원시형 데이터는 불변성을, 참조형 데이터는 가변성을 가지고 있다.
원시형은 모양이 같으면 같다고 할 수 있지만, 객체형은 모양이 같다고 해서 같다고 해서는 안된다.
// 불변성 & 가변성
// 불변성(Immutability)은 생성된 데이터가 메모리에서 변경되지 않고 가변성(Mutability)은 생성된 데이터가 메모리에서 변경될 수 있음을 의미
// 참조형: 객체, 배열, 함수
// 자바스크립트 원시형은 불변성을, 참조형은 가변성을 가지고 있다.
let a = 1;
let b = a;
b = 2
console.log(b);
console.log(a);
// 원시형이 모양이 같으면 같지만, 객체형은 모양이 같다고 해서 같은 것은 아니다.
let a1 = {x:1};
let b1 = {x:1};
let a2 = 2;
let b2 = 2;
console.log(a1 === b1); // false
console.log(a2===b2); // true
'JAVASCRIPT' 카테고리의 다른 글
[JavaScript] 메모리 누수 (Memory Leak) (0) | 2023.04.27 |
---|---|
[JavaScript] 얕은 복사와 깊은 복사 (0) | 2023.04.27 |
[JavaScript] 이벤트 - Focus & Form Event (0) | 2023.04.24 |
[JavaScript] 이벤트 - Keyboard Event (0) | 2023.04.24 |
[JavaScript] 이벤트 - Mouse Event (0) | 2023.04.24 |