불변성(Immutability)은 생성된 데이터가 메모리에서 변경되지 않는다
가변성(Mutability)은 생성된 데이터가 메모리에서 변경될 수 있음을 의미
자바스크립트 원시형(null, 문자, 숫자, undefined, boolean, symbol, binInt)은 불변성
참조형(객체데이터, 배열 함수)은 가변성을 가지고있다.
원시형은 일단 모양이 같으면 서로 같다고 볼 수 있는데, 참조형 데이터인 객체 데이터는 모양이 같더라도 같다고 인식하지 않아 false가 나온다.
참조형은 가변성으로 인해, 데이터를 복사할 때 주의가 필요
얕은 복사 (Shallow Copy) : 참조형의 1차원 데이터만 복사
깊은 복사(Deep copy) : 참조형의 모든 차원 데이터를 복사
자바스크립트의 메모리 관리 방법으로 자바스크립트 엔진이 자동으로, 데이터가 할당된 메모리에서 더 이상 사용되지 않는 데이터를 해제하는 것을 말한다.
가비지 컬렉션은 개발자가 직접 강제 실행하거나 관리할 수 있다.
함수가 선언될 때의 유효범위(렉시컬 범위)를 기억하고 있다가, 함수가 외부에서 호출될 때 그 유효범위의 특정 변수를 참조할 수 있는 개념을 말한다.
let이라는 키워드는 재할당을 위해 사용되는 키워드인데,
더 이상 필요하지 않은 데이터가 해제되지 못하고 메모리를 계속 차지하는 현상
