자바스크립트는 single threaded language 입니다. 자바스크립트 언어 자체에는 멀티쓰레딩이 없습니다. 이런 자바스크립트 언어 자체에는 멀티쓰레딩을 할 수 있는 방법은 없지만 이 자바스크립트가 동작하고 있는 브라우저 위에는, 즉 브라우저라는 프로그램 안에서는 여러 가지의 쓰레드가 들어 있습니다.
그래서 우리가 브라우저, 즉 Web APIs 들을 이용하게 되면 멀티쓰레딩이 가능하게 됩니다. 그리고 자바스크립트가 동작하는 이 런타임 환경에서, 즉 자바스크립트가 동작하고 있는 실행 환경에서는 다양한 방식을 이용해서 조금 멀티쓰레딩 같은 효과를 얻을 수가 있는데, 그리고 자바스크립트가 실행되는 이 런타임 환경에서는 즉 자바스크립트가 실행되는 실행 환경 위에서는 이런 멀티쓰레딩 뿐만 아니라 이벤트 루프를 이용해서 조금 더 다양한 동작을 실행할 수가 있습니다.
우리의 웹 어플리케이션이 브라우저 위에 올라가는 순간 이 자바스크립트 엔진이 우리가 작성한 소스코드를 한 줄 한줄씩 해석하고 분석하고 실행하게 되는데 아래 간략하게 그림과 같은 구조로 되어 있습니다.