본문 바로가기

Web/Frontend 기본 CS 정리

(20)
호이스팅에 대해 설명해주세요 호이스팅(Hoisting)은 자바스크립트에서 변수와 함수의 선언이 해당 스코프의 최상단으로 끌어올려지는 현상을 말합니다. 이는 코드의 작성 순서와는 관계없이 자바스크립트 엔진이 실행 시점에 선언부를 먼저 처리하기 때문에 발생합니다.  예를 들어, var 키워드로 변수를 선언하면 호이스팅이 발생하여 변수 선언이 코드의 최상단으로 이동합니다. 하지만 변수의 할당은 원래 위치에 남아 있기 때문에, 선언 전에 변수를 참조하면 undefined를 반환합니다.console.log(a); // undefinedvar a = 5;위 코드에서 a는 호이스팅으로 인해 선언부가 위로 올라가지만, 값이 할당되기 전이므로 undefined가 출력됩니다.반면에 let과 const로 선언한 변수는 호이스팅이 되지만, Tempora..
var, let, const 차이를 설명해주세요 답변var, let, const는 자바스크립트에서 변수를 할당할 때 사용하는 키워드입니다.먼저 var는 함수 스코프를 따르고, 블록 스코프를 무시하고 호이스팅이 발생해 변수 선언 전 접근 시 undefined가 반환됩니다. 또한 변수 재할당이 가능합니다.let은 블록 스코프를 따르며, 호이스팅이 되지만 선언 전 접근 시 ReferenceError가 발생합니다.let 역시 재할당이 가능합니다.const도 블록 스코프를 따르며, 호이스팅이 되지만 선언 전 접근 시ReferenceError가 발생합니다. 또한 const는 재할당이 불가능합니다.다만 객체나 배열의 내부 값은 변경할 수 있습니다. 꼬리 질문var가 블록 스코프를 무시할 때 발생할 수 있는 실제 문제는 무엇인가요?var는 함수 스코프를 따르기 때문..
async, await 사용방법을 설명해주세요. 답변async, await 방식을 Promise 기반 코드를 동기식 코드처럼 작성할 수 있도록 해줍니다.async는 함수가 비동기 함수임을 선언한 것이고, await는 해당 비동기 작업이 완료될 때까지 기다린다는 의미입니다.함수 앞에 async를 선언하면 해당 함수는 Promise 객체를 반환한다는 의미이고, 내부적으로 Promise를 반환하는 작업 앞에 await를 붙여 해당 작업이 완료될 때까지 기다리도록 하여 마치 동기적인 코드처럼 사용할 수 있습니다.꼬리 질문async/await와 Promise.then()은 언제 사용하는 게 더 적합한가요? 답변async/await는 비동기 코드들을 순차적으로 실행할 때 더 적합합니다.비동기 코드를 동기 코드처럼 사용할 수 있어 흐름을 파악하기에 유리합니다.반면..
Promise와 Callback의 차이점을 설명해주세요 답변Callback은 함수 실행 후 다시 호출되는 함수로, 비동기 작업 완료시 호출될 수 있습니다.하지만 중첩될 경우 Callback Hell 문제를 일으킬 수 있습니다.Promise는 비동기 작업의 성공, 실패를 처리하는 객체로, Callback보다 가독성이 좋고 체인형식으로 작업을 이어나갈 수 있습니다.then, catch, finally를 사용해 비동기 작업의 흐름을 제어할 수 있습니다. 꼬리 질문Callback Hell이란 무엇인가요?이에 대한 해결책으로 앞서 말한 Promise나 async/await 방법들을 사용할 수 있습니다.Callback Hell은 비동기 작업을 처리할 때, 여러 개의 중첩된 콜백 함수들이 순차적으로 호출되는 구조를 말합니다. 이로 인해 코드의 가독성이 떨어져, 유지보수나..