기술면접 스터디 (2)

이성은·2023년 5월 4일

var, let, const의 차이는 무엇인가요?

  • 첫번째, 변수 선언 방식에 대해서 차이점
    • var의 경우는 중복선언이 가능하고, 재할당이 가능합니다. 변수를 유연하게 사용할 수 있지만, 길고 복잡한 코드에서는 기존에 선언해 둔 변수의 존재를 잊고, 재선언 하는 경우 문제가 발생할 수 있습니다.
      let의 경우는 var와는 달리 중복선언이 불가하고, 재할당이 가능합니다.
      const의 경우에는 중복선언과 재할당이 모두 불가합니다.
  • 두번째, 스코프 즉 유효한 참조의 범위에서 차이점
    • var의 경우는 함수레벨 스코프이므로 함수내에서 선언된 경우 함수내에서만 유효합니다. 함수외부에서는 참조할수 없습니다.
      let과 const의 경우는 블록레벨 스코프이므로 모든 코드블록내부에서 선언된 변수는 코드블록 내부에서만 유효합니다.
  • 세번째, 호이스팅 방식에서 차이점
    • var의 경우 변수가 선언되기 전에 값을 참조 시 에러가 뜨지 않고, undefined가 출력됩니다. 이는 코드 실행 전에 자바스크립트 내부에서 미리 변수를 선언하여 undefined로 초기화를 해두었기 때문입니다.
      let과 const는 이럴경우에 에러가 발생합니다. 변수 선언을 사전에 해두지만 초기화를 하지 않으므로 값을 참조할수 없기 때문입니다.
  • 따라서 변수선언을 할 때 기본적으로 필요한 곳에 선언을 하고, 기본적으로 const를, 재할당이 필요한곳에 let를 사용

block scope란 무엇인가요?

  • 블록은 중괄호를 말하는데, 중괄호에 의해서 생기는 변수의 유효범위를 블록 스코프라고 합니다.

이벤트 버블링, 캡처링, 위임이 무엇인가요?

  • HTML 문서의 각 엘리먼트들은 태그 안의 태그가 위치하는 식으로 계층적으로 이루어져 있습니다.
    이러한 구조 때문에 HTML 요소에 이벤트가 발생할 경우 연쇄적인 이벤트 흐름이 일어나는데, 이러한 현상을 이벤트 전파라고 부릅니다.
    이벤트 전파방향에 따라 이벤트 캡처링과 이벤트 버블링으로 구분하는데, 이벤트 캡쳐링은 자식 요소에서 발생한 이벤트가 부모 요소부터 안쪽 자식 요소까지 도달하는 방식이고,
    이벤트 버블링은 자식 요소에서 발생한 이벤트가 바깥 부모 요소로 전파되는 방식입니다.
  • 이러한 이벤트 캡처링과 버블링을 활용하면 강력한 이벤트 핸들링 패턴인 이벤트 위임을 구현할수 있습니다.
    이벤트 위임은 비슷한 방식으로 여러 요소를 다뤄야 할때 사용됩니다. 이벤트 위임을 사용하면 요소마다 핸들러를 할당하지 않고, 요소의 공통 조상에 이벤트 핸들러를 단 하나만 할당해도 여러 요소를 한꺼번에 다룰 수 있습니다.

다양한 자바스크립트 라이브러리 중 왜 React를 쓰셨나요?

  • 제가 리엑트를 쓰는 이유는 첫번째, 리엑트는 우선 JavaScript에 대한 기본 지식이 있는 사람이라면 누구나 이해할수 있수 있고,
    두번째, 리엑트는 Virtual DOM 개념을 적용하여 실제 DOM과 비교해서 달라진 부분만 업데이트를 하기 때문에, 불필요한 렌더링 과정이 줄어듭니다.
    세번째, 이러한 Virtual DOM때문에 리엑트에서는 컴포넌트 단위의 개발이 가능합니다. 컴포넌트 단위로 개발을 하면, 재사용하기에 유용하고, 유지보수를 하기에 용이합니다.
profile
함께 일하는 프론트엔드 개발자 이성은입니다🐥

0개의 댓글