Yun-Yoseob / Study

0 stars 0 forks source link

JavaScript ECMA Script Research #3

Open Yun-Yoseob opened 2 years ago

Yun-Yoseob commented 2 years ago

1. ECMA Script란?

2. ES 5와 ES 6의 차이는?

Yun-Yoseob commented 2 years ago

1. ECMA Script란?

✔ ECAM 탄생 배경

1996년 8월, 마이크로소프트는 자바스크립트의 파생 버전인 "JScript"를 인터넷 익스플로러 3.0에 탑재했다. 그런데 문제는 JScript와 자바스크립트가 표준화되지 못하고 적당히 호환되었다는 것이다.

넷스케이프 커뮤니케이션즈와 마이크로소프트는 자사 브라우저의 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가하기 시작했다는 것이다. 이로 인해 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈가 발생하기 시작했고, 결과적으로 모든 브라우저에서 정상적으로 동작하는 웹페이지를 개발하기가 무척 어려워졌다.

이에 자바스크립트의 파편화를 방지하고 모든 브라우저에서 정상적으로 동작하는 표준화된 자바스크립트의 필요성이 대두되기 시작했다. 이를 위해 1996년 11월, 넷스케이프 커뮤니케이션즈는 컴퓨터 시스템의 표준을 관리하는 비영리 표준화 기구이 ECMA 인터내셔널에 자바스크립트의 표준화를 요청한다.

✔ ECAMScript란?

ECMAScript는 자바스크립트의 표준 사양인 ECMA-262를 말하며, 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정한다. 각 브라우저 제조사는 ECMAScript 사양을 준수해서 브라우저에 내장되는 자바스크립트 엔진을 구현한다.

자바스크립트는 일반적으로 프로그래밍 언어로서 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 Web API, 즉, DOM, BOM, Canvas, XMLHTTPRequest, fetch, requestaAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등을 아우르는 개념이다.

2. ES 5와 ES 6의 차이는?

2009년에 출시된 ECMAScript5(ES5)는 HTML5와 함께 출현한 표준 사양이다. 2015년에 공개된 ECMAScript6(ECMASciprt 2015, ES6)는 let/const 키워드, 화살표 함수, 클래스, 모듈 등과 같이 범용 프로그래밍 언어로서 갖춰야 할 기능들을 대거 도입하는 큰 변화가 있었다.

버전 출시연도 특징
ES5 2009 HTML5와 함께 출현한 표준안
JSON, strict mode, 접근자 프로퍼티, 프로퍼티 어트리뷰트 제어, 향상된 배열 조작 기능(forEach, map, filter, reduce, some, every)
ES6(ECMAScript 2015) 2015 let/const, 클래스, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, 스프레드 문법, rest 파라미터, 심벌, 프로미스, Map/Set, 이터러블, for...of, 제너레이터, Proxy, 모듈 import/export

✔ ES6 브라우지 지원 현황

인터넷 익스플로러를 제외한 대부분의 모던 브라우저는 ES6을 지원하지만 100% 지원하고 있지는 않다. Node.js는 v4부터 ES6을 지원하기 시작했다. 인터넷 익스플로러와 구형 브라우저는 ES6을 대부분 지원하지 않는다.

따라서 브라우저에서 아직 지원하지 않는 최신 기능을 사용하거나 인터넷 익스플로러나 구형 브라우저를 고려해야 하는 상황이라면 바벨(Babel)고 같은 트랜스파일러를 사용해 ES6 이상의 사양으로 구현한 소스코드를 ES5 이하의 사양으로 다운그레이드 할 필요가 있다.