본문 바로가기

프론트엔드/면접준비

기술면접 - 자바스크립트

 

JavaScript

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

         ‘변수에 접근할 수 있는 범위  

스코프에는 두가지 타입 global(전역) local(지역)

전역 스코프는 어느곳에서든지 해당변수에 접근할 수 있다는 의미

지역 스코프는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에선 접근할 수 없다.

 

함수 스코프가 지역스코프의 예이다.

자바스크립트에서 함수를 선언하면 선언할때마다 새로운 스코프를 생성하게 된다.

함수 몸체에 선언한 변수는 해당 함수 몸체 안에서만 접근할 수 있다.

 

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

const 선언은 재할당할 수 없으며 다시 선언할 수 도 없다.

배열과 객체는 참조값이고, 참조값은 변수에 주소를 할당한다.

따라서 const변수에 주소만 할당되어있다. 

참조된 주소는 변경되지 않고 

실제 요소들은 push와 pop으로 변경가능

 

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

고정된 저장 공간을 차지하는 데이터를 모두 원시 타입(primitive type) 데이터 라고 한다.

객체가 아니면서 method를 가지지 않는 6가지의 타입
string, number, bigint, boolean, undefined, symbol, (null)

원시 자료형은 모두 하나의 데이터만을 담고 있다.

원시 자료형은 값 자체에 대한 변경이 불가능(immutable)하지만, 변수에 다른 데이터를 할당할 수는 있다.

 

원시자료형이 아닌 모든 것들은 참조 자료형(reference data type) 이라고 부른다.

배열, 객체, 함수

참조 자료형은 여러 데이터를 담을 수 있다.

참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장한다. 데이터는 heap이라고 부르는 별도의 데이터 보관함에 저장된다.

원시 자료형과는 다르게 heap 안에 저장된 데이터는 원하는 대로 데이터 사이즈를 조정할 수 있다.

 

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

깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미하며, 

+ 데이터 자체를 통째로 복사한다.

+ 복사된 두 객체는 완전히 독립적인 메모리를 차지한다.

+ value type의 객체들은 깊은 복사를 하게 된다.

 

얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미

인스턴스가 메모리에 새로 생성되지 않는다. 값 자체를 복사하는 것이 아니라 주소값을 복사하여 같은 메모리를 가리키기 때문이다.

깊은 복사보다 상대적으로 빠르다.

'프론트엔드 > 면접준비' 카테고리의 다른 글

자료구조 면접질문  (0) 2023.07.27
브라우저랜더링  (0) 2022.09.08