TIL/취준
JS 면접 예상 질문
saramnim
2023. 8. 21. 15:18
728x90
1. this
함수가 호출될 때 현재 실행 컨텍스트의 객체.
- call, apply, bind
- call과 apply
함수를 호출하면서 this와 함께 인자를 전달
- call: 각각의 인자를 쉼표로 구분하여 전달
- apply: 인자들을 배열로 전달
- call: 각각의 인자를 쉼표로 구분하여 전달
- 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
반응형