자바스크립트는 한 번에 하나의 명령만 실행할 수 있는 동기식 단일 스레드 언어입니다. 현재 줄의 실행이 완료된 후에만 다음 줄로 이동합니다. 그러나 JavaScript는 이벤트 루프, Promises, Async/Await 및 콜백 대기열을 사용하여 비동기 작업을 수행할 수 있습니다(JavaScript는 기본적으로 동기식임).
JavaScript 코드는 어떻게 실행되나요?
JavaScript의 모든 작업은 실행 컨텍스트 내에서 발생합니다(큰 상자 또는 컨테이너로 생각). 전체 JavaScript 코드는 이 실행 컨텍스트 내에서 실행됩니다. 여기에는 메모리 구성요소(변수 환경)와 코드 구성요소(실행 스레드)라는 두 가지 구성요소가 있습니다.
먼저 전역 실행 컨텍스트가 생성됩니다. 이 안에서 각 함수는 자체 실행 컨텍스트를 생성합니다.
코드 줄이 실행되기 전에 모든 변수와 함수에 메모리가 할당됩니다.
메모리 할당 후 코드는 어떻게 실행되나요?
JavaScript 엔진은 전체 프로그램을 다시 한 줄씩 실행하고 코드를 실행합니다.
다음 예를 살펴보겠습니다.
function add(a,b){ var ans = a b; console.log(ans); } var addition = add(6,5);
이 예에서는 메모리 구성 요소(MC)와 코드 구성 요소(CC)라는 두 가지 구성 요소로 구성된 전역 실행 컨텍스트가 먼저 생성됩니다.
기능의 경우 전체 기능 코드가 메모리에 저장됩니다. 변수의 경우 처음에는 정의되지 않은 특수 값이 저장됩니다.
함수가 호출되면 또 다른 실행 컨텍스트가 생성됩니다. 메모리 구성 요소에는 매개 변수 값(a = 6, b = 5)이 저장되는 반면 ans와 같은 변수는 처음에 정의되지 않은 값을 유지합니다. 코드 구성요소에서는 메모리 구성요소의 값이 작업을 수행하는 데 사용됩니다(a b = 6 5 = 11). 그런 다음 결과가 콘솔에 인쇄됩니다.
이 설명을 통해 개념이 명확해지기를 바랍니다. 궁금한 점이나 수정사항이 있으면 댓글로 남겨주세요.
Akshay Saini에 대한 크레딧 (참조:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3