Q. 호이스팅과 TDZ// Q. Hoisting과 Temporal Dead Zone이 어떻게 연관되어 있는지 설명하세요.A1. Hoisting(호이스팅) : 함수선언문이 코드의 선두로 끌어올려진 것처럼 동작하는 것을 의미합니다. A2. Temporal Dead Zone(직역: 일시적인 사각지대 | TDZ) : const, let, class ... 구문의 유효성에 영향을 미치는 중요한 개념이며, 스코프의 시작 지점부터 초기화 시작 지점까지의 구간을 의미한다. 간단하게 표현하자면 TDZ는 선언 전에 변수를 사용하는 것을 허용하지 않는다. 반대로 var 변수는 선언 전에도 사용할 수 있기 때문에 var 사용은 피하는 것이 좋다.Q. Virtual DOM// Q1. Virtu..
Q. 재귀를 활용하기 좋은 상황// Q. 재귀를 활용하기 좋은 상황은 언제인지 예시를 들어 설명해 주세요.A. 1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우 2. 중첩된 반복문이 많거나 반복문의 중첩 횟수(number of loops)를 예측하기 어려운 경우Q. UI / UX의 개념과 관계// Q1. UI, UX의 개념과 두 개념의 관계에 대해서 설명해 주세요.A. UI : User Interface | 사람들이 컴퓨터와 상호작용하는 시스템을 의미합니다. UX : User Experience | 사용자가 어떤 시스템, 제품, 서비스를 직, 간접적으로 이용하면서 느끼고 생각하는 총체적 경험입니다. UX > UI | UX는 UI를 포함합니다. 좋은..
Q. Promise// Q. Promise 의 기능과 필요한 이유에 대해 설명해주세요.A. Promise는 비동기 작업시 개발자의 의도대로 결과를 제공 받기 위해 필요합니다. Promise는 비동기 처리 상태와 처리 결과를 관리하는 객체입니다. Promise를 사용하면 비동기 처리를 마치 동기 처리 처럼 코드를 순서대로 동작하게 할 수 있습니다. Promise의 상태 정보로는 비동기 처리 성공(fulfilled) 혹은 실패(rejected)와 비동기 처리를 아직 수행하지 않은 상태(pending)이 있습니다. promise.prototype.then은 비동기 처리 성공 했을 때 호출되는 콜백 함수이며, promise.prototype.catch는 비동기 처리 실패 했을 ..
Q. 배열 객체를 Const 선언한 경우, 요소나 속성 추가가 가능한 이유// Q. 배열 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해 설명해주세요.A. 원시 자료형과 참조 자료형의 차이 때문에 요소나 속성을 추가할 수 있습니다. 변수에 데이터 값 자체를 할당하고 저장하는 원시 자료형과 달리 배열, 객체는 참조 자료형으로 변수에 데이터 값 자체가 아닌 데이터 값이 담겨있는 주소값을 저장합니다. 참조 자료형은 데이터 값과 주소값을 따로 저장하기 때문에 참조 자료형은 const로 선언해도 저장된 주소값은 동일하기에 heap에 저장된 데이터 값인 요소나 속성을 변경할 수 있습니다. Q. 원시 자료형과 참조 자료형// Q. 원시 자료형과 참조 자료형에 대해서 설..