스터디 14

callback, promise, async/await 의 특징과 차이점에 대해서 설명하세요.

면접대답 먼저 짧게 비동기 처리 방법인 callback함수는 순차적으로 실행하고 싶을 때 콜백함수를 적극 활용합니다 쉽게 말해 callback 함수란 쉽게 말해서 함수안에 들어가는 함수를 callback 함수라고 합니다 그러나 callback 함수가 많아지면 속칭, callback 지옥에서 빠져 코드를 읽을때 어려움이 있습니다 그렇기 때문에 callbakc 함수를 보기 좋게 하기 위해서 promise를 사용하게 됩니다 promise는 좀 더 코드를 직관 적으로 볼 수 있어 성공, 실패의 경우에 각각 다른 코드가 실행이 가능합니다 그래서 비동기에 온 값이 promise 객체에 저장되기 때문에 코드 작성이 용이해집니다 promise에는 3가지 상태가 있다 비동기 처리가 완료 되지 않았다면 pending 완료..

호이스팅과 Temporal Dead Zone이 어떻게 연관되어있는지 설명하세요.

면접시 대답 자바스크립트에서 호이스팅이란, var 선언문이나 함수 선언문 등 모든 선언문이 해당 스코프의 선두로 옮겨진 것처럼 동작하는 특성을 말합니다. 여기서 var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화 합니다. 즉, 변수의 선언와 초기화가 동시에 이루어 집니다. 먼저 호이스팅 var,let,const 에서 var는 선언과 초기화가 동시에 이루어지고 let과 const는 선언과 초기화가 나누어져 이루어집니다 이때 선언과 초기화 사이를 TDZ(Temporal Dead Zone)이라고 합니다 TDZ에 있는 코드에 접근하게 되면 Reference Error가 발생하게 됩니다 호이스팅에 대한 나의 이야기 a = 2; var a; console.log(a); // (1) (1) 식..

클로져에 대해서 설명하세요.

면접시 대답 : 클로저란 외부함수의 변수에 접근할 수 있는 내부 함수입니다. 함수가 속한 렉시컬 스코프(렉시컬 환경)을 기억하여 함수가 렉시컬 스코프 밖에서 실행될때에도 이 스코프에 접근할 수 있게 하는 기능을 뜻합니다. 이를 이용해 클로저가 소멸될때 까지 상태유지를 하거나, 정보를 은닉할 수 있는 이점이 있습니다. 클로저에 대한 나의 이야기 나는 클로저에 대해 진저리가 난다. 우선 mdn에 나오는 정의인 **클로저**는 함수와 함수가 선언된 어휘적 환경의 조합이다 이게 한국어인지 아랍어인지 이해가 가지 않는다는 점이다. 그래서 그냥 공부하기도 싫었다. 그래도 뭐 어쩌겠어… 해야지.. 내가 찾아본 와닿는 정의는 함수가 속한 렉시컬 스코프를 기억하여 함수가 렉시컬 스코프 밖에서 실행될 때에도 이 스코프에 ..