컴퓨터를 구성하는 가장 중요한 3가지
컴퓨터에서 문서파일을 실행시킬 때 발생하는 일
메모리는 총 4가지 영역으로 구성되어져 있다.
원시타입 (Primitive Type)
number, string, boolean, null, undefined, symbol
let a = 1
a = 2;
변수명 a는 값이 저장된 메모리 셀을 가르키고, 메모리 셀 안에는 값 1이 저장된다.
재할당 할 경우, 메모리 셀 안에 저장된 1이 2로 바뀌어 저장된다.
참조타입 (Reference Type)
object, function
const apple = {
name: 'apple',
color: 'red',
pirce: 123123,
};
let copy = apple;
apple.color = 'blue'
변수명 apple은 메모리 셀을 가르키고, 메모리 셀 안에는 값이 아닌 데이터들이 저장되어 있는 참조값(메모리의 주소값)이 저장된다.
데이터들은 heap에 따로 저장되어 있다. 때문에 copy에 apple을 할당하게 되면 데이터가 아닌 참조값이 할당되기 때문에, apple.color를 blue로 변경하게되면 copy.color 와 apple.color가 같은 값을 가진다.
const apple = {
name: 'apple',
color: 'red',
pirce: 123123,
};
apple.name = 'orange';
apple.pirce = 5555;
const는 재할당이 불가능 하다고 했지만, obj의 경우는 다르다.
위에서도 설명했지만, 데이터들은 heap에 따로 보관되어 있기 때문에 값 변경이 가능하다.
const apple 변수선언 의미는 apple이 가르키고 있는 메모리 셀안에 있는 참조값을 변경할 수 없다는 의미.