웹 브라우저에서 구동되는 객체 기반의 스크립트 프로그래밍 언어
javascript는 웹브라우저 엔진에서 구동되는 스크립트로 HTML과 CSS랑 같이 사용되는 것이 일반적이며 node,js와 같은 자바스크림트 런타임을 활용하여 서버 프로그래밍도 가능하다.
Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어
위키 백과에는 저렇게 설명되어 있지만 javascript는 언어고 ECMAscript는 javascript의 표준이나 스펙을 의미한다. 그냥 javascript의 버전이라고 생각하면 된다.
구동원리, 스크립트 엔진 구조를 찾다보면 다음과 같은 그림을 많이 봤을 것이다.
Heap : 메모리 할당이 일어나는 곳 (객체 선언)
Stack : 실질적으로 코드가 수행되는 공간
Web APIS : 브라우저에서 제공하는 API
Callback Queue : 비동기 호출 함수들이 대기하는 영역
Event Loop : Stack과 Callback Queue의 상태를 주기적으로 확인하는 프로세스
Stack영역이 하나라서 싱글 스레드라고 말하는 사람도 있고 이벤트 루프가 하나기 때문이라고 말하는 사람도 있다. (어쨋든 한번에 하나씩 실행하는건 똑같)
브라우저 | 자바스크립트 엔진 |
---|---|
Chrome, Opera | V8 |
Firefox | SpiderMonkey |
IE | Trident, Chakra |
Edge | ChakraCore |
Safari | JavaScriptCore (SquirrelFish) |
javascript와 es의 개념과 특징, 구동 원리에 대해 정리해보았다.
javascript를 사용함에 있어 구동 원리에 대한 이해가 필요하다고 느낀다.
오늘 저녁은 제육볶음이다. 🥕
참조 : https://curryyou.tistory.com/192
https://joshua1988.github.io/web-development/translation/javascript/how-js-works-inside-engine/