모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다.
2.1 자바 스크립트의 탄생
2.2 자바 스크립트의 표준화
크로스 브라우징 이슈 발생 : 브라우저에 따라 웹 페이지가 정상적으로 동작하지 않음
2.3 자바 스크립트 성장의 역사
렌더링
HTML, CSS JS 로 작성된 문서를 해석해서 브라우저에 시각적으로 출력
서버에서 데이터를 HTML 로 변환해서 브라우저에게 전달하는 과정 (SSR)
Ajax => jQuery => V8 자바스크립트 엔진 => Node.js => SPA 프레임 워크
2.4. 자바 스크립트와 ECMAScript
ECMAScript
자바 스크립트 표준 사양
프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법 규정
2.5 자바스크립트의 특징
자바스크립트
웹 브라우저에서 동작하는 유일 프로그래밍 언어
인터프리터 언어
멀티 패러다임 프로그래밍 언어 : 명령형. 함수형, 프로토타입 기반 객체지향 프로그램 지원
프로토타입 기반의 객체지향 언어 (클래스 기반 보다 효율적)
컴파일러 언어 | 인터프리터 언어 |
코드가 실행되기 전 단계인 컴파일 타임에 소스 코드 전체를 한번에 머신 코드로 변환한 후 실행 | 코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트 코드로 변환한 후 실행 |
실행 파일 생성 | 실행 파일 생성하지 않음. |
컴파일 단계와 실행 단계가 분리 명시적 컴파일 단계를 거치고 명시적 실행 파일 실행 |
인터프리트 단계와 실행 단계가 미분리 인터프리터는 한 줄씩 바이트 코드로 변환하고 즉시 실행 |
실행에 앞서 컴파일은 단 한번 수행 | 코드가 실행될 때마다 인터프리트 과정이 반복 수행 |
코드 실행 속도가 비교적 빠름 | 코드 실행 속도가 비교적 느림 |
대부분 모던 브라우저에서 사용된느 인터프리터는 전통적인 컴파일러 언어처럼 명시적인 컴파일 단계를 거치지는 않지만 복잡한 과정을 거치며 일부 소스 코드를 컴파일 하고 실행
=> 동적 기능 지원 및 실행 속도 향상
2.6 ES6 브라우저 지원 현황