Skip to content

JavaScript

이 장에서는 프론트엔드 기술 면접에서 자주 나오는 JavaScript 핵심 개념과 관련 질문들을 정리합니다.

자바스크립트의 실행 원리와 엔진 구조

Javascript란?

JavaScript는 HTML, CSS와 함께 웹 브라우저에서 실행할 수 있는 프로그래밍 언어입니다. JavaScript는 동적 타입 언어로, 런타임 시 타입이 결정되는 특징이 있습니다. 또한, JavaScript는 컴파일을 거치지 않는 인터프리터 언어입니다. JavaScript 엔진인 V8 엔진이 최적화를 위해 JIT(Just-In-Time) 컴파일러를 사용하지만, 기본적으로 JavaScript는 인터프리터 방식으로 실행됩니다

꼬리 질문

  • 컴파일러와 인터프리터란 무엇인가요?
  • 자바스크립트 엔진이 코드를 실행하는 과정에 대해 설명해 주세요.

변수

var 키워드와 let 키워드의 차이점은 무엇인가요?

var 키워드는 함수 스코프를 가지며 호이스팅 시 변수 선언과 초기화가 함께 일어나기 때문에 의도치 않은 값 참조가 발생할 수 있습니다. 반면 let 키워드는 블록 스코프를 가지며, 호이스팅은 되지만 초기화는 실행 시점에 이뤄져 TDZ(Temporal Dead Zone)이 존재하여 선언 전에 접근하면 에러가 발생합니다. 이러한 차이 때문에 최근에는 var 대신 letconst 사용이 권장됩니다.

꼬리질문

  • TDZ란 무엇인가요?
  • const 키워드란 무엇인가요?