: 스코프란 변수의 유효 범위입니다. 함수 스코프와 블록 스코프로 나뉘며, 화살표 함수는 함수 스코프가 아닌 블록 스코프로 취급됩니다.
함수 스코프와 블록 스코프를 구분하는 건 무엇인지 설명해주세요.
: 함수 스코프는 함수의 시작과 끝으로, 블록 스코프는 중괄호로 구분합니다.
스코프의 중첩은 어떻게 이루어지는지 설명해주세요.
: 스코프가 중첩될 경우 안쪽 스코프에서 바깥쪽 스코프로의 접근은 가능하지만 반대로는 불가능합니다. 이때 가장 바깥쪽 스코프를 전역 스코프라고 하며 다른 모든 스코프는 지역 스코프라고 합니다. 지역 스코프는 전역 스코프보다 우선순위를 가집니다.
: 배열, 객체는 참조 자료형으로 heap 주소를 값으로 가지고 있으며 요소나 속성은 heap 내에 추가되기 때문입니다.
: 원시 자료형은 변수에 값 자체가 할당되며, 새로운 값을 할당 할 수는 있지만 값의 변경은 불가능합니다. 참조 자료형은 변수에 값이 있는 heap의 주소가 할당되며, 값의 변경이 가능합니다.
: 얕은 복사는 heap의 주소를 복사하여 원본이나 사본을 수정해도 똑같이 반영됩니다. 이에 반해 깊은 복사는 새로운 heap 주소에 같은 값을 복사하여 어느것을 수정하더라도 따로 반영됩니다.