JS 흔히 인터프리터 언어(위에서부터 순서대로 실행시키는 언어 ex. python, matlab)라고 말하지만 컴파일언어의 면모가 있습니다. JS 컴파일은 여러단계로 구성되며, 각 단계별로 코드를 철리하는 목적이 다릅니다. JS의 컴파일 과정을 이해하면 코드가 선언되고 실행될 때 생기는 버그, memory leak을 이해하고 고칠 수 있습니다.
JS는 다른 멀티 스레드 프로그래밍 언어와 다르게 싱글 스레드 환경에서 비동기 동작을 처리합니다. 싱글 스레드 비동기 환경을 구성하는 중요 요소 중 하나인 이벤트 루프에 대해 이해하면, JS 엔진 레벨에서의 비동기 코드 동작을 이해할 수 있습니다. 복잡한 비동기 동작을 이해하고 높은 수준의 비동기 코드를 작성하며, 버그의 원인을 파악할 수 있게 됩니다.