자바스크립트
- 브라우저에서 사용가능 (HTML, CSS, Javascript)
- 활용성도 좋음, node.js로 백엔드 서버도 가능
- 프로그래밍언어
개발자는 정해진 문법으로 특정한 로직을 수행하도록 프로그래밍한다.
- 언어만으로는 할수있는게 없다. 언어는 특정한 문법을 가지고만있다.
- 브라우저에 출력하고 싶다면 외부환경(라이브러리)를 사용해야한다.
- 네트워크통신을 하고싶다면 자바스크립트언어 자체만으로는 통신할 수 있는 기능이 없기때문에 통신도 외부환경(라이브러리)를 이용해야한다.
ex) 영어문법도 안다고해서 소통이나 연설을 잘할수없는것처럼 소통스킬이나 연설스킬들을 따로 배워야한다.
- Javascript 문법만 잘 숙지하고있으면 브라우저와 node환경을 넘나들 수 있다.
자바스크립트 엔진
- js파일을 한줄한줄씩 읽는다 (인터프리터)
- js코드를 번역하기 위해서 자바스크립트 엔진이 필요하다.
컴파일러와 인터프리터의 차이
- 컴파일러는 실행하기전 모든코드를 컴파일링한다.
- 인터프리터는 필요할때마다 한줄씩 번역한다.
컴파일러와 인터프리터의 장단점
- 컴파일러의 장단점
장점: 컴파일러 할때 모든 코드를 번역해야하기때문에 오래기다려야한다.
단점: 모든 코드를 번역했기때문에 실행속도는 빠르다.
- 인터프리터의 장단점
장점: 필요할때마다 가져와서 번역하기때문에 초반속도는 빠르다.
단점: 실행하고있는 당시에는 한줄씩 번역하므로 실행속도가 비교적 느리다
브라우저 엔진들
엔진들은 ECMAScript 문법의 규격사항,표준으로 브라우저의 엔진들이 구성되어있다.
- 엣지 -> V8
- 크롬 -> V8
- 사파리 -> Javascript core
- 파이어폭스 -> SpiderMonkey