본문 바로가기
프론트엔드(Front-End)/JavaScript

[JavaScript] - About JavaScript, ES5, ES6의 차이

by TwoJun 2022. 12. 19.

Programming Language - JavaScript

 

1. What is a JavaScript?

- JavaScript, 자바스크립트는 HTML, CSS로 구성된 정적 웹 페이지를 기반으로 다양한 동적인 기능, 보다 복잡한 기능을 수행할 수 있도록 하기 위해 만들어진 스크립트 기반 프로그래밍 언어입니다.

 

- 여기서 말하는 동적인 기능, 보다 복잡한 기능들이라는 의미는 웹 페이지를 통해 특정 데이터가 주기적으로 갱신되거나, 엔드 포인트(End-point)에서 서비스를 경험하고 사용하는 사용자와의 상호작용(Interaction), 2D, 3D 기반의 이미지가 생동적으로 표현될 수 있는 범위들을 포함한 모든 동작, 행위들을 의미하며 사용자들이 유저 친화적인 서비스를 경험하기 위해 빠질 수 없는 이러한 요소들을 구현하는 언어가 JavaScript입니다.

 

 

 

 

 

 

2. JavaScript의 역사

- 1995년, 네스케이프사의 네비게이터가 웹 브라우저 시장을 장악하고 있었고, 기존 HTML 코드에 프로그래밍 언어를 도입하여 동적인 페이지를 구현하는 것을 목표로 두고 있었습니다.

 

- 이러한 이유로 단기간에 새로운 프로그래밍 언어를 탄생시켰고, 해당 언어의 첫 이름은 모카, 이후에 LiveScript로 불려졌으나 당시 시장에서 Java라는 언어의 인기가 상당했기 때문에 시장성을 확보하고자 LiveScript에서 JavaScript로 이름이 변경되었습니다.

 

 

 

 

 

 

3. ECMAScript, ES5, ES6

3-1. ECMAScript의 등장 배경과 ES6, ES6

- 브라우저는 하나만 존재하지 않았고 여러 개의 브라우저가 동시에 존재했습니다. 그러나 동일한 로직으로 수행되어야 하는 기능들이 모든 브라우저에서 동일하게 실행되지 못하는 크로스 브라우징 이슈(Cross browsing issue)가 발생함에 따라 표준화된 JavaScript 문법이 필요했으며 이러한 표준 체계를 ECMA International에서 기술 규격에 맞게 정의, 표준화한 스크립트 프로그래밍 언어 체계를 발표했으며 이를 "ECMAScript"라고 부르게 되었습니다.

 

- ES5, ES6은 ECMAScript에 숫자를 붙여 조금 더 간단하게 표현하고 부르는 형식이며 ES5는 2009년에 발표, ES6는 2015년도에 발표되었습니다.

 

- 그 이후에도 많은 추가적인 버전이 릴리즈되었으나 ES5에서 ES6으로 넘어가는 과정에서 정말 다양하고 유의미한 변화들이 생겼기에 두 버전의 차이를 가장 큰 변화의 기준점으로 보고 있습니다.

 

 

 

 

3-2. ES5, ES6의 대표적인 차이들

(1) 새로운 변수 키워드 let, const 추가

 

(2) Arrow function 추가

 

(3) Default parameter 추가

 

(4) Template literal(템플릿 리터럴), Multi-line string 추가

- ``(Back tic)을 사용하여 복잡한 문자열과 표현식(변수) 처리함에 있어 유연성, 가독성을 증가시키게 되었습니다.

 

(5) 클래스 추가

 

(6) 프로미스(Promise) 도입

 

(7) 다양한 String 메서드 추가(includes, startsWith, endsWith 등)

 

(8) 모듈 

 

(9) Destructuring(디스트럭쳐링)

- 디스트럭쳐링은 간단히 풀어보면, 객체를 이루는 요소적인 부분을 파괴하여 개별적인 변수에 직접 할당하거나 확장해주는 기능을 의미합니다.

 

- 위와 같은 대표적인 차이점 외에도 ES6 버전에 많은 기능들이 추가되었으며 이 시점을 계기로 JavaScript가 급성장을 이루게 되었습니다.

 

 

 

 

 

 

======================================================================

해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.

이에 대해 지적해 주시면 감사하겠습니다.

댓글