JavaScript는 한 번에 하나의 명령만 실행할 수 있는 동기식 단일 스레드 언어입니다. 현재 줄의 실행이 완료된 후에만 다음 줄로 이동합니다. 그러나 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)라는 두 가지 구성 요소로 구성된 전역 실행 컨텍스트가 먼저 생성됩니다.
기능의 경우 전체 기능 코드가 메모리에 저장됩니다. 변수의 경우 처음에는 undefound라는 특수값이 저장됩니다.
함수가 호출되면 또 다른 실행 컨텍스트가 생성됩니다. 메모리 구성 요소에는 매개 변수 값(a = 6, b = 5)이 저장되는 반면 ans와 같은 변수는 처음에 정의되지 않은 값을 유지합니다. 코드 구성요소에서는 메모리 구성요소의 값이 작업을 수행하는 데 사용됩니다(a + b = 6 + 5 = 11). 그런 다음 결과가 콘솔에 인쇄됩니다.
이 설명을 통해 개념이 명확해지기를 바랍니다. 궁금한 점이나 수정할 점은 댓글로 남겨주세요.
Akshay Saini의 크레딧(참조:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])
위 내용은 JavaScript는 동기식인가요, 비동기식인가요? 그리고 단일 스레드인가요, 아니면 다중 스레드인가요? JavaScript 코드는 어떻게 실행되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!