TIL/취준

JS 면접 예상 질문

saramnim 2023. 8. 21. 15:18
728x90

1. this

함수가 호출될 때 현재 실행 컨텍스트의 객체.

  • call, apply, bind
  • callapply
    함수를 호출하면서 this와 함께 인자를 전달

    • call: 각각의 인자를 쉼표로 구분하여 전달
    • apply: 인자들을 배열로 전달
  • bind
    함수를 호출할 때 this를 영구적으로 바인딩하기 위해 사용

2. 클로저

함수와 그 함수가 선언된 렉시컬 환경의 조합

함수 안에서 선언된 변수가 함수 외부에서도 참조될 때 클로저가 형성

 

3. 이벤트 루프

비동기 작업을 관리

콜백 함수나 프로미스와 같은 비동기 코드를 순서대로 실행

 

4. map과 foreach의 차이

  • map
    배열의 각 요소에 대해 주어진 함수를 호출하고, 그 결과로 새로운 배열을 생성
  • foreach
    배열의 각 요소에 대해 주어진 함수를 호출하며, 새로운 배열을 생성하지 않는다.

  •  

5. 실행 컨텍스트

코드 실행을 위한 환경 정보를 담고 있다.

변수, 함수 선언 및 스코프 정보를 관리

6. var, let, const의 차이 및 특징

  • var
    함수 스코프를 가지며, 호이스팅에 영향을 받는다.
  • let
    블록 스코프를 가지며, 변수 재선언 불가능
  • const
    블록 스코프를 가지며, 상수를 선언할 때 사용하며 재할당 불가능

7. 자바스크립트의 메모리 관리

자바스크립트는 가비지 컬렉터를 통해 더 이상 사용하지 않는 메모리를 자동으로 회수

8. 콜백 함수, 콜백 지옥

  • 콜백 함수
    비동기 작업이 완료되면 호출되는 함수
  • 콜백 지옥
    여러 개의 중첩된 콜백 함수로 인해 코드의 가독성이 떨어지는 상황

  •  

9. Promise, Async, Await

  • Promise
    비동기 작업을 처리하고 성공 또는 실패 결과를 처리하는 객체
  • Async, Await
    비동기 코드를 동기식처럼 작성할 수 있도록 하는 문법

  •  

10. AJAX(Asynchronous JavaScript and XML)

브라우저와 서버 간에 비동기적으로 데이터를 교환하기 위한 기술

11. 함수 선언형과 함수 표현식의 차이

  • 함수 선언형
    함수를 선언하고 이름을 붙여 정의하는 방식
  • 함수 표현식
    함수를 변수에 할당하여 정의하는 방식

  •  

12. 호이스팅

변수 및 함수 선언이 스코프의 상단으로 끌어올려지는 현상을 말합니다.

 

13. 이벤트 버블링과 캡처링

  • 이벤트 버블링
    이벤트가 발생한 요소에서 시작하여 상위 요소로 전파되는 현상
  • 이벤트 캡처링
    이벤트가 발생한 요소에서 시작하여 하위 요소로 전파되는 현상

  •  

14. 스코프

변수와 함수의 유효 범위

전역 스코프, 지역 스코프

15. 프로토타입

객체지향 프로그래밍에서 객체 간의 상속을 구현하는데 사용되는 객체

16. 깊은 복사와 얕은 복사

  • 깊은 복사
    객체의 모든 내용을 복사하여 새로운 객체를 생성하는 것
  • 얕은 복사
    객체의 내용 중 하나라도 참조형 데이터일 경우, 참조값만 복사하는 것

  •  

17. 동기와 비동기

  • 동기
    작업이 순차적으로 실행되며, 이전 작업이 완료된 후 다음 작업이 실행
  • 비동기
    작업이 병렬적으로 실행되며, 작업이 완료되지 않아도 다음 작업을 실행
  •  

18. ES6에서 새로 생긴 기능

화살표 함수, 클래스, 모듈, 템플릿 리터럴, 디스트럭처링, 프로미스 등

19. 이터러블과 이터레이터 프로토콜

  • 이터러블
    반복 가능한 객체를 말하며, Symbol.iterator 메소드를 가진다.
  • 이터레이터 프로토콜
    이터러블 객체와 이터레이터 객체 간의 상호 작용 규약을 나타낸다.
  •  

20. Rest 연산자와 Spread 연산자

  • Rest 연산자
    함수의 인자를 배열로 받는 문법으로, ...을 사용해 표현
  • Spread 연산자
    배열이나 객체를 펼쳐서 개별 요소로 분리하는 문법으로, 마찬가지로 ...을 사용
728x90
반응형