본문 바로가기

javascript

자바스크립트 클로저(javascript closures) Closures 0. Closure 정의 'A closure is the combination of a function and the lexical environment within which that function was declared' 클로저에 대한 MDN의 정의입니다. 클로저는 선언되었을 때의 렉시컬 환경에 영향을 받습니다. 따라서 클로저를 알기 위해선 **Lexical Scope**에 대한 이해가 필요합니다. 1. Lexical Scoping function showName() { const name = "Kim"; // name은 showName 함수 내부에 생성된 지역 변수입니다. function displayName() { // displayName() 은 내부 함수이며,클로저입니다. c.. 더보기
자바스크립트 비동기(Call Back & Promise) javascript asynchronous - Call Back & Promise 1. javascript는 동기식 언어입니다. javascript는 싱글 스레드이며 동기식 언어입니다. 스레드가 하나이기 때문에 한가지의 프로세스를 이어갈 수 있으며 현재 일이 끝나지 않는다면 프로그램은 blocking됩니다. 즉, 한가지 일만을 수행할 수 있으며 현재 일이 끝나지 않은 경우에 다음 작업을 할 수 없기 때문에 프로그램은 중지된 것처럼 보입니다. 웹 사이트에서 얼마간의 대기 시간을 필요로 하는 경우는 생각보다 많습니다. 네트워크 응답 대기, 사용자 입력 대기 등... 기약없는 응답을 기다리는 상황은 언제든 필요할 수 있는데요. 이런 상황에서도 프로그램은 다음 작업을 처리하여 매끄럽게 진행돼야 합니다. 비동기 .. 더보기