반응형 전체 글89 [javascript] 호이스팅(hoisting)에 대해서 정의 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 import의 선언문을 해당 범위의 맨위로 끌어올리는 것처럼 보이는 현상 console.log(a); var a = 1; //결과 undefined 선언은 호이스팅되지만 할당은 호이스팅 되지않는다. console.log(name); console.log(age); let name = mike; const age = 21; //결과 reference error let과 const는 var처럼 동작하지 않는 현상이 나타난다. 이것은 호이스팅 되지않는것이 아니라 Temporal Dead zone의 영향을 받아서 에러를 발생하게 된다. Temporal Dead zone 변수의 선언과 변수의 초기화 사이의 변수에 접근할 수 없는 지점 즉.. 2024. 3. 26. [javascript] 클로저에 대해서! 클로저 클로저는 내부 함수에서 외부 함수의 범위에 대한 접근을 제공 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경의 조합이다. 클로저는 자신이 생성될 때의 환경(렉시컬 환경)을 기억하는 함수이다. 컨텍스트A에서 선언한 변수를 내부함수 B에서 참조할 경우에 발생하는 특별한 현상 function init() { var name = "Mozilla"; // name은 init에 의해 생성된 지역 변수이다. function displayName() { // displayName() 은 내부 함수이며, 클로저다. console.log(name); // 부모 함수에서 선언된 변수를 사용한다. } displayName(); } init(); //https://developer.mozilla.org/ko/doc.. 2024. 1. 12. [javascript]동기 vs 비동기 이해하기 동기와 비동기 1. 동기 Synchronous: 동시에 발생하는 -직렬적으로 발생하는 작동방식 -요청을 보냈다면, 응답을 받아야 다음 동작이 이루어진다. -순차적으로 실행되므로, 어떤 작업이 수행 중이라면 뒤 작업은 대기해야 한다. -블로킹(작업중단)이 발생한다. 2. 비동기 Asynchronous: 동시에 발생하지 않는 -코드가 끝날 때까지 기다리는 것이 아니라 다음 코드를 먼저 실행한다. -작업 완료 순서가 보장되지 않는다. -블로킹이 발생하지 않는다. 동기는 줄 서서 앞사람이 끝나면 다음사람이 주문을 하는 것이라고 보면 비동기는 먼저 완성된 것부터 받아가는 것이라고 보면 될 것 같다. 비동기 작업 예시 console.log("hi"); setTimeout(()=>{ console.log("james.. 2024. 1. 11. [javascript] async await 비동기에 대해서 1. async 함수 앞에 async를 붙이면 해당함수는 자동으로 프로미스를 반환하게 된다. 비동기로 처리되는 부분에 await를 붙이면 프로미스가 끝날때까지 기다린다. (동기적 처리) await는 async가 붙은 함수에서만 사용 가능하다. 2.await 비동기로 처리되던 것을 동기적으로 처리를 해준다. async function Name(){ return "kim" } async function Job(){ return "Front-end Developer" } async function Info(){ const name = await Name(); const Job = await Job(); return `${name} + ${Job}` } Info().then(console.log); //결과값 .. 2024. 1. 10. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음