관리 메뉴

동이의 개발일지

면접 질문 - js/ts관련 질문 편 (1) 본문

웹 개발/면접 질문 및 웹 관련 질문

면접 질문 - js/ts관련 질문 편 (1)

개발하는 동이 2024. 10. 14. 00:38
728x90

 

1. js에서 var, let, const의 차이점은 무엇인가?

- var, let, const의 3개의 키워드는 변수를 선언할 때 사용됩니다. 차이점으로 스코프와 재할당 기능의 여부를 말하는데 var는 함수 스코프, let과 const는 블록 스코프를 가지며, const는 재할당이 불가능합니다.

 

스코프는 변수에 접근할 수 있는 범위

 

2. 클로저란 무엇인가? 

- 클로저는 함수가 선언 될 때의 스코프를 기억하여, 그 스포크 밖에서 호출될 때에도 그 내부의 변수에 접근할 수 있는 개념 

 

3. 호이스팅이란 

- 변수와 함수 선언이 해당 코드가 실행되기 전에 상단으로 끌어올려지는 현상을 말하며, let과 const로 선언된 변수는 호이스팅 되지만 초기화되지 않아 사용할 수 없습니다.

 

4. 이벤트 루프는 무엇인가?

- 이벤트 루프는 js비동기 작업을 처리하는 매커니즘으로 콜백 큐에 있는 작업들이 스택이 비었을 때 실행되도록 합니다.

이는 js가 싱글 스레드 언어임에도 비동기 처리를 효율적으로 도와줌

 

5. js의 비동기 처리 방법에는 어떤 것들이 있나?

- 콜백함수, promise, async/await가 있습니다. 콜백은 중첩이 복잡해질 수 있는 단점이 있고, promise는 이를 개선하며, async/await은 더 직관적으로 비동기 코드는 작성할 수 있게 해 줍니다.

 

6. this란?

- this란 실행 문맥에 따라 달라지는데 일반적으로 객체 내의 메서드에서 사용하면 해당 객체를 참조하지만, 전역 콘텍스트에서는 window 객체를 가리킬 수 있습니다. bind, call, apply를 통해 this를 명시적으로 바꿀 수 있습니다.

 

7.==와 ===의 차이점은 무엇인가?

- 타입 변환을 허용하는 비교의 차이를 말하는데 ==에 경우 느슨하고 ===는 엄격합니다.

 

8. javascript와 typescript의 차이점은 무엇인가?

- typescript는 javascript의 상위 집합으로, 정적 타입 검사와 최신 ecmascript 기능을 제공합니다. typescript는 컴파일 타임에 타입 오류를 잡아내는 기능이 있어 더 안전한 코드를 작성할 수 있습니다.

 

9. typescript에서 인터페이스란 무엇인가요?

- 인터페이스는 객체의 구조를 정의하며, 객체가 반드시 가져야 하는 속성과 메서드를 명시합니다. 클래스나 객체가 인터페이스를 구현함으로써 코드의 일관성을 높일 수 있습니다.

 

10. 제네릭이란?

- 제네릭은 타입을 파라미터로 받아서 다양한 타입에 대해 재사용 가능하도록 코드 재사용성을 높여줍니다.

주로 함수나 클래스에서 사용합니다.

 

11. ts의 타입 단언과, 타입 가드란 무엇인가?

- 타입 단언은 개발자가 해당 값을 타입을 정확하게 알고 있을 때 사용하는 문법

타입 가드는 런타임에 변수의 타입을 좁히는 데 사용됩니다. 조건문 등을 통해 변수가 특정 타입임을 확인할 수 있습니다.

 

12. ts에서 any, unknown, const의 차이점은 무엇인가?

- any : 모든 타입을 허용하며, 타입 검사 없이 사용 가능
  unknown : any와 비슷하지만, 사용할 때 반드시 타입 확인

  never : 함수가 절대 반환하지 않는 값을 나타내며, 보통 오류를 던지거나 무한 루프에 사용

 

13. readonly와 const의 차이점

- readonly는 객체의 속성에 사용되며, 해당 속성이 한 번 설정되면, 수정할 수 없음을 의미합니다. 반면 const는 변수에 사용되어 상수 값을 선언할 때 사용됩니다.

 

728x90
반응형