프로세스 현재 실행중인 프로그램의 인스턴스 독립 메모리 영역을 할당받으며 다른 프로세스에 영향을 미치지 않음. 스레드 프로세스 내부에서 실행되는 실행 흐름의 단위 ( 프로세스 보다 작은 실행 단위 ) 프로세스 내에서 같은 메모리를 공유할 수 있음. 콜 스택 (Call Stack) : 함수 호출이 쌓이는 곳입니다. JavaScript는 단일 쓰레드 언어로, 한 번에 하나의 함수만 실행할 수 있습니다. 이벤트루프 (자바스크립트 런타임 외부에서 비동기 실행을 돕기위해 만들어진 장치) 이벤트루프의 역할: 콜스택이 비어있는지 지속적으로 확인하며, 비어있다면 태스크큐 마이크로태스크 큐의 대기중인작업들을 콜스택으로 이동시킨다. ( = Tick ) 태스크큐: setTimeout, setInteverval 등의 함수가 ..
일급함수 : 일급객체의 특성을지닌 함수 일급객체란? (다른 객체들이 가지는 권한을 모두 가지는 객체) 모든 일급 객체는 변수나 데이터에 담을 수 있어야 한다. 모든 일급 객체는 함수의 파라미터로 전달 할 수 있어야 한다. 모든 일급 객체는 함수의 반환값으로 사용할 수 있어야 한다. 프로그래밍 언어는 해당 언어의 함수가 변수처럼 취급될 때, 일급 함수(First-Class Function)을 가진다고 합니다. 즉, 함수가 다른 함수들에 인자로 전달되고, 다른 함수에 의해 반환되며, 변수에 값으로서 할당될 수 있음을 말하며 따라서 자바스크립트는 함수를 일급 객체(First-Class Object)로 취급합니다. 고차함수 : 다른 함수를 인자로 받거나 반환값으로 사용하는 함수 클로저(Closure) 함수와 함..
실행컨텍스트와 렉시컬 환경 실행 컨텍스트(Execution Context)와 렉시컬 환경(Lexical Environment)은 자바스크립트 엔진이 코드를 실행하는 방법을 이해하는 데 중요한 개념입니다. 실행 컨텍스트 : 현재 실행되는 코드의 환경을 나타내며, 전역코드가 실행되는 전역컨텍스트 함수 내부 코드가 실행되는 함수 컨텍스트로 나뉠 수 있습니다. 전역 컨텍스트 전역 컨텍스트는 코드가 실행되는 동안 계속 유지되며, 코드 실행이 종료될 때까지 사라지지 않습니다. 전역 변수와 함수를 포함 함수 컨텍스트 함수 컨텍스트는 각각의 함수 호출에 대해 별도로 생성되며, 함수가 실행을 완료하고 반환하면, 해당 함수 컨텍스트는 메모리에서 제거됩니다(단, 클로저에 의해 참조되는 경우는 제외). 함수의 매개변수, 로컬..
호이스팅 : (변수, 함수) 선언부가 코드 최상단으로 이동해 실행되는 것처럼 동작하는 자바스크립트의 독특한 동작 방식으로, 자바스크립트 엔진이 코드를 해석하고 실행하기 전(런타임 이전)에 선언된 변수와 함수를 미리 메모리에 할당하는 과정을 말합니다. 호이스팅에는 크게 두 가지 방식이 존재하는데요, 변수 호이스팅 함수 호이스팅 변수 호이스팅 var 키워드로 선언된 변수의 경우 호이스팅에 의해 undefined로 초기화되므로, 선언문 이전 undefined 참조가 가능합니다. let, const 키워드로 선언한 변수도 엄밀히는 호이스팅이 일어나지만, 변수 선언 전에 해당 변수를 참조하려 했을 때, 참조에러가 발생합니다. 함수 호이스팅 function 키워드의 함수선언문으로 선언한 함수는 호이스팅에 의해 코드..