"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript는 동기식인가요, 비동기식인가요? 그리고 단일 스레드인가요, 아니면 다중 스레드인가요? JavaScript 코드는 어떻게 실행되나요?

JavaScript는 동기식인가요, 비동기식인가요? 그리고 단일 스레드인가요, 아니면 다중 스레드인가요? JavaScript 코드는 어떻게 실행되나요?

2024-11-06에 게시됨
검색:860

자바스크립트는 한 번에 하나의 명령만 실행할 수 있는 동기식 단일 스레드 언어입니다. 현재 줄의 실행이 완료된 후에만 다음 줄로 이동합니다. 그러나 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)라는 두 가지 구성 요소로 구성된 전역 실행 컨텍스트가 먼저 생성됩니다.

Is JavaScript synchronous or asynchronous, and is it single-threaded or multi-threaded? How is JavaScript code executed?

기능의 경우 전체 기능 코드가 메모리에 저장됩니다. 변수의 경우 처음에는 정의되지 않은 특수 값이 저장됩니다.

Is JavaScript synchronous or asynchronous, and is it single-threaded or multi-threaded? How is JavaScript code executed?

함수가 호출되면 또 다른 실행 컨텍스트가 생성됩니다. 메모리 구성 요소에는 매개 변수 값(a = 6, b = 5)이 저장되는 반면 ans와 같은 변수는 처음에 정의되지 않은 값을 유지합니다. 코드 구성요소에서는 메모리 구성요소의 값이 작업을 수행하는 데 사용됩니다(a b = 6 5 = 11). 그런 다음 결과가 콘솔에 인쇄됩니다.

이 설명을 통해 개념이 명확해지기를 바랍니다. 궁금한 점이나 수정사항이 있으면 댓글로 남겨주세요.

Akshay Saini에 대한 크레딧 (참조:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])

릴리스 선언문 이 기사는 https://dev.to/ramya_srim/is-javascript-synchronous-or-asynchronous-and-is-it-single-threaded-or-multi-threaded-how-is-javascript-code-에서 재현됩니다. 실행- 24b2?1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3