원시타입 데이터
: 기존의 데이터에 영향이 가지 않는다
참조타입 데이터
: 주소를 복사하기에 기존의 데이터에도 영향이 간다.
let 과 const 차이
(1) let word = "hello world!"
word = "hello codestates!"
// 하지만, word라는 변수에 재할당을 하여 변수에 담긴 내용을 변경은 가능합니다.
(2) const num1 = 123;
num1 = 123456789; // 에러 발생
// const 키워드로 선언하면, 재할당은 불가합니다.
즉, 변수에는 특별한 데이터 보관함을 찾아갈 수 있는 주소가 담겨있고, 이 주소를 따라가보면 특별한 데이터 보관함을 찾을 수 있는데, 이 특별한 데이터 보관함에서는 자기 마음데로 사이즈를 늘렸다가 줄였다가 합니다. 우리가 직접 다루는 변수에는 주소가 저장되기 때문에 reference type이라고 불립니다. 이런 특별한 데이터 보관함을 heap이라고도 부릅니다.\
바깥쪽 스코프에서 선언한 변수는 안쪽 스코프에서 사용 가능
반면에, 안쪽에서 선언한 변수는 바깥쪽 스코프에서는 사용X.
안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능합니다. 이것이 첫번째 규칙입니다.
가장 바깥쪽의 스코프는 전역 스코프(Global Scope) 그외에는 지역스코프