1. 콜 스택
5151 단어 webdevjavascriptbeginners
참조
Call Stack — MDN 100%
조항
Understanding Javascript Call Stack, Event Loops — Gaurav Pandvia 100%
Understanding the JavaScript Call Stack — Charles Freeborn 100%
Javascript: What Is The Execution Context? What Is The Call Stack? — Valentino Gagliardi 50%
What is the JS Event Loop and Call Stack? — Jess Telford 100%
Understanding Execution Context and Execution Stack in Javascript — Sukhjinder Arora 0%
How JavaScript Works: An Overview of the Engine, the Runtime, and the Call Stack — Alexander Zlatkov 100%
The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis 50%
100%
정의
인터프리터가 호출된 기능을 추적하는 메커니즘 또는 구조
스크립트 호출 기능
인터프리터는 함수의 실행 컨텍스트를 호출 스택에 추가하고 함수 실행을 시작합니다.
함수 실행이 완료되었습니다
인터프리터는 호출 스택에서 함수의 실행 컨텍스트를 제거하고 왼쪽에서 실행을 재개합니다.
스택은 할당된 것보다 더 많은 공간을 차지합니다.
"스택 오버플로"
실행 컨텍스트란 무엇입니까?
실행 컨텍스트는 코드가 실행되는 환경의 추상적인 개념입니다. 다음은 실행 컨텍스트에 대한 가이드입니다.
예시
function greeting() {
sayHi(); //
}
function sayHi() {
return 'Hi';
}
greeting(); //
greeting();
에 도달하면 인사말 함수의 실행 컨텍스트가 호출 스택에 추가됩니다. sayHi();
에 도달하면 sayHi 함수의 실행 컨텍스트가 호출 스택에 추가됩니다. 콜 스택의 특징
밀린 쪽이 나중에 보듯이 먼저 나갑니다. 예를 들어, sayHi 기능은 인사말 기능보다 나중에 추가되었지만 먼저 제거되었습니다. 우리는 그것을 LIFO(후입선출)라고 부릅니다.
또한 Call Stack은 데이터를 임시로 저장하기 위한 것입니다. 함수 실행이 완료되면 호출 스택이 비게 됩니다.
또한 모든 실행 컨텍스트가 순서대로 추가되고 순서대로 실행됩니다. 그래서 우리는 호출 스택이 동기식이라고 말합니다.
자바스크립트 엔진
정의
자바스크립트 코드를 실행하는 프로그램. Chrome의 V8 Engine, node.js, electron은 JS 엔진 중 하나입니다. V8 엔진은 고성능의 오픈 소스 자바스크립트 및 웹 어셈블리 엔진입니다.
JS Engine은 Memory Heap과 Call Stack으로 구성되어 있습니다. 우리는 Call Stack에 대해 배웠습니다. 그렇다면 메모리 힙은 무엇입니까?
메모리 힙
메모리 힙은 변수 및 개체의 메모리 할당에 사용되는 비정형 메모리입니다.
JS 런타임
정의
자바스크립트 프로그램이 실행되는 환경
동시성이 필요한 이유는 무엇입니까?
호출 스택이 실행할 기능으로 남아 있을 때 브라우저는 실제로 아무 것도 할 수 없으며 이를 차단이라고 합니다. 그래서,
두 경우 모두 사용자 경험을 감소시킵니다.
웹 API
DOM 이벤트, http 요청, setTImeout 등과 같은 비동기 이벤트를 처리합니다. JS 엔진이 아닌 브라우저에서 생성됩니다. Web API는 실행이 완료되면 콜백 큐에 콜백을 푸시합니다.
콜백 대기열
처리되고 콜백 함수에 연결될 메시지 목록
이벤트 루프
그렇다면 Callback Queue의 함수가 실행될 시기를 누가 선택합니까? 이벤트 루프가 그렇습니다. 이벤트는 호출 스택과 콜백 큐를 모두 반복하고 스택이 완전히 비어 있을 때 큐의 첫 번째 항목을 스택으로 푸시합니다.
Reference
이 문제에 관하여(1. 콜 스택), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moyedx3/1-call-stack-32n8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)