20일차

JiHun·2023년 5월 9일

부트캠프

목록 보기
19/56

💼기술 면접

첫문장은 모든 걸 쏟아 부어서 간결하고 명료하게. 추가로 물어볼 수 없게 만들자. 만약 추가 질문이 들어온다면 예상하여 맞받아치자.

🗂️배열, 객체를 const로 선언했지만 요소, 속성을 추가할 수 있는 이유?

배열, 객체는 참조 자료형입니다. 참조 자료형을 변수에 할당하면, 메모리 공간에 주소값만 저장하고 참조 자료형의 값은 heap이라는 저장공간에 따로 저장됩니다. 즉, 메모리 공간에 있는 주소값은 변경할 수 없는 상수 상태이지만 heap에 저장된 값은 변경이 가능합니다.

📑왜 참조 자료형은 heap이라는 곳에 따로 저장하나요?

참조 자료형은 원시 자료형과 다르게 크기가 일정하지 않습니다. 배열, 객체의 크기가 큰 상태에서 요소나 속성들을 메모리에 하나하나 저장하게되면, 메모리 효율성이 떨어집니다. 따라서 참조 자료형을 변수에 선언, 할당할 때 heap 저장 공간에 값을 저장합니다.

🗂️스코프에 대해서 설명해주세요

스코프는 "변수 접근 규칙에 따른 유효범위"를 말합니다. 보통은 중괄호를 기준으로 구분이 됩니다.

📑변수 접근 규칙에는 뭐가 있나요?

첫번째 규칙은, 중괄호를 기준으로 안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 바깥쪽 스코프에서 안쪽 스코프에 존재하는 변수에는 접근할 수 없다는 것입니다.
두번째 규칙은 스코프는 중첩이 가능하다는 것입니다. 가장 바깥쪽 스코프는 전역 스코프라고 불리고 어느 스코프에서도 사용가능하다는 것입니다.
세번째 규칙은 지역변수는 전역변수보다 더 높은 우선순위를 가집니다. 같은 변수명으로 할당을 해도 지역 스코프에서는 지역 변수가 사용된다는 것입니다.

🗂️클로저에 대해 설명해주세요

함수와 함수가 선언된 어휘적 환경의 조합입니다. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성됩니다.

📑스코프와 클로저는 비슷한 개념 같은데 왜 구분할까요?

클로저의 함수는 어디에서 호출되느냐에 무관하게 선언된 함수 주변 환경에 따라 접근할 수 있는 변수가 정해지기 때문에 스코프와 다릅니다.
"외부 함수"변수에 접근 할수 있는 "내부 함수"라고 표현하기도 합니다.

마지막으로

머리로는 알고 있는데 생각을 정리해서 입 밖으로 꺼내는 것이 어려웠다.
이제는 머리로는 알고 있지만 설명을 못하면, 그것도 모른다는 생각을 해야겠다.
한 줄로 간단명료하게 설명하는 연습을 해보자.

profile
안녕하세요. 프론트엔드 개발자 송지훈입니다.

0개의 댓글