오늘의 목표
04 호이스팅
05 타이머 함수
06 콜백
오늘은 퇴근하고 여유롭게 방에 누워서(?) 엎드려서(?) 강의를 듣는다
호이호이호이스팅 완전 처음 보는 단어다..
콜백..? 전화주세요?ㅋㅋㅋ 되게 익숙한 단어들을 여기서 보다니..ㅎㅎ
회사 일이 많아서 힘든데 이번주는 강의가 짧아서 참 다행이야..ㅎㅎ
호이스팅이란?
JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상을 뜻한다. 호이스팅은 ECMAScript 사양에서 규범적으로 정의된 용어가 아니다.
호이스팅(Hoisting)이란 함수 내의 변수 및 함수 선언을 각 유효 범위의 최상단으로 끌어 올려주는 JS의 독특한 특징이다.
실제로 코드가 끌어올려지는 것은 아니고, 자바스크립트 parser가 내부적으로 끌어올려서 처리한다.
컴파일 단계에서 코드 실행 전 함수와 변수 선언을 스캔하고, 모든 함수와 변수 선언들은 렉시컬 환경이라 불리는 자바스크립트 데이터 구조 내의 메모리에 추가된다.
var a를 상단으로 호이스팅했기 때문에 변수 선언 전에 console.log로 출력을 해도 에러가 발생하지 않고, undefined 가 출력된다.
모든 선언(function, var, let, const, class)은 JavaScript에서 호이스팅되며, var 선언은 undefined로 초기화되지만 let 및 const 선언은 초기화되지 않은 Temporal Dead Zone 상태로 유지된다.
자바스크립트에서는 총 3단계에 걸쳐서 변수를 생성한다.
- 선언(Declaration) : 스코프와 변수 객체가 생성되고, 스코프가 변수 객체를 참조한다. 초기화 전까지는 TDZ 상태이다.
- 초기화(Initialization) : 변수 객체 값을 위한 공간을 메모리에 할당한다. 이 때 할당되는 값은 undefined다.
- myValue = undefined
- 할당(Assignment) : 변수 객체에 값을 할당한다. myValue = 150
타이머함수란?
자바스크립트에서 다루는 타이머 함수는 일정 시간이 지난 후 특정 코드 또는 함수가 실행될 수 있도록 해주는 함수와 일정 시간마다 함수가 실행될 수 있도록 해주는 함수를 말한다.
setTimeout은 파라미터로 함수를 받고와 지연시간 그리고 추가적인 파라미터가 주어질 수 있다.
콜백이란?
1) 피호출자(Callee)가 호출자(Caller)를 다시 호출하는 것
2) 비동기적 처리를 하기 위한 디자인 패턴의 종류
간단하게는 위와 같은 개념을 가지고 있다.
콜백함수를 등록하면, 특정 이벤트가 발생되었을 때 콜백함수를 호출하여 실행한다.
이때, 특정 이벤트라는 것은 어떠한 조건을 만족시키는 것을 의미한다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완 #프론트엔드
'Study > Frontend_study' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 45일차 미션 (3월 16일) : 프론트엔드개발 강의 후기 (0) | 2024.03.16 |
---|---|
패스트캠퍼스 환급챌린지 44일차 미션 (3월 15일) : 프론트엔드개발 강의 후기 (0) | 2024.03.15 |
패스트캠퍼스 환급챌린지 42일차 미션 (3월 13일) : 프론트엔드개발 강의 후기 (0) | 2024.03.13 |
패스트캠퍼스 환급챌린지 41일차 미션 (3월 12일) : 프론트엔드개발 강의 후기 (0) | 2024.03.12 |
패스트캠퍼스 환급챌린지 40일차 미션 (3월 11일) : 프론트엔드개발 강의 후기 (0) | 2024.03.11 |