1995년 웹 브라우저 시장을 지배하던 넷스케이프 커뮤니케이션즈는 웹페이지의 보조적 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입 하기로 하는데, 그것이 자바스크립트임.
자바스크립트의 발전과정은 순탄치 않음. MS는 자바스크립트의 파생 버전인 JScript를 인터넷익스플로러에 탑재했고, 이는 자바스크립트와 적당히 호환되어 결국 표준화되지 못함.
자사 브라우저 시장 점유율을 높이기 위해 자사 브라우저에서만 동작되는 기능을 경쟁적으로 추가하여, 결국 브라우저에 따라 웹페이지가 정상적으로 작동되지 않는 크로스 브라우징 이슈가 발생함.
렌더링: HTML, CSS, 자바스크립트로 작성된 문서를 해석해 브라우저에 시각적으로 출력 하는 것 / 서버에서 데이터를 HTML로 변환해서 브라우저에게 전달하는 과정(SSR: Server Side Rendering) 을 가리키기도 함
Ajax: 비동기 방식으로 데이터를 교환할 수 있는 통신 기능
비동기 방식: 웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링하는 방식
JQuery: 자바스크립트보다 DOM 을 더욱 쉽게 제어할 수 있, 기존의 크로스 브라우징 이슈도 어느정도 해결함
V8 자바스크립트 엔진: 더욱 빠르게 동작하는 자바스크립트 엔진의 필요성이 대두되어 만들어진 엔진. V8 자바스크립트 엔진의 등장으로 자바스크립트는 UX를 제공할 수 있는 웹 애플리케이션 프로그래밍 언어로 정착
Node.js: V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경. 비동기 I/O 를 지원, 단일 스레드 이벤트 루프 기반으로 동작함으로써 요청 처리 성능이 좋음. 데이터를 실시간으로 처리하는 SPA(single page application)에는 적합하나 CPU 사용률이 높은 애플리케이션에서는 권장 x
자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어다.
자바스크립트는 클래스 기반 객체지향 언어보다 효율적이면서 강력한 프로토타입 기반의 객체지향 언어다.