기술면접 준비

허북이_·2022년 7월 20일
0

코드스테이츠

목록 보기
15/68
post-thumbnail

JavaScript

1. 스코프에 대해서 설명해주세요.

: 스코프란 변수의 유효 범위입니다. 함수 스코프와 블록 스코프로 나뉘며, 화살표 함수는 함수 스코프가 아닌 블록 스코프로 취급됩니다.

꼬리질문

  • 함수 스코프와 블록 스코프를 구분하는 건 무엇인지 설명해주세요.
    : 함수 스코프는 함수의 시작과 끝으로, 블록 스코프는 중괄호로 구분합니다.

  • 스코프의 중첩은 어떻게 이루어지는지 설명해주세요.
    : 스코프가 중첩될 경우 안쪽 스코프에서 바깥쪽 스코프로의 접근은 가능하지만 반대로는 불가능합니다. 이때 가장 바깥쪽 스코프를 전역 스코프라고 하며 다른 모든 스코프는 지역 스코프라고 합니다. 지역 스코프는 전역 스코프보다 우선순위를 가집니다.

2. 배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요.

: 배열, 객체는 참조 자료형으로 heap 주소를 값으로 가지고 있으며 요소나 속성은 heap 내에 추가되기 때문입니다.

꼬리질문

  • heap이란 무엇인가요?
    : 참조 자료형의 값이 담기는 공간입니다.
  • 그럼 원시 자료형의 값은 어디에 담기는지 설명해주세요.
    : 원시 자료형의 값은 call stack 이라는 곳에 담기게 됩니다.

3. 원시 자료형과 참조 자료형에 대해서 설명해주세요.

: 원시 자료형은 변수에 값 자체가 할당되며, 새로운 값을 할당 할 수는 있지만 값의 변경은 불가능합니다. 참조 자료형은 변수에 값이 있는 heap의 주소가 할당되며, 값의 변경이 가능합니다.

4. 얕은 복사와 깊은 복사에 대해서 설명해주세요.

: 얕은 복사는 heap의 주소를 복사하여 원본이나 사본을 수정해도 똑같이 반영됩니다. 이에 반해 깊은 복사는 새로운 heap 주소에 같은 값을 복사하여 어느것을 수정하더라도 따로 반영됩니다.

profile
인간 거북이 허북이

0개의 댓글