JS의 ES 그리고 ES6

soo's·2023년 4월 10일
0

TIL

목록 보기
34/53
post-thumbnail

1. ES란?

ES라는 것은 'Javascript의 표준 규격' 을 의미하는데, 이 배경은 웹 브라우저의 점유율 싸움이다. 넷스케이프 사의 Javascript가 흥하자 마이크로소프트 사에서도 IE 3에 JScript라는 이름으로 자바스크립트를 탑재했지만, 그 둘은 너무 달라서 각 브라우저 별 개발자들이 해야할 일과 시간이 훨씬 늘어나게 됨.

더욱이 사용자를 끌어들이기 위해 기능을 추가하다 보니 Javascript와 JScript는 더욱 차이가 벌어졌고, 이에 European Computer Manufacturers Association (현 ECMA International)에서 Javascript에 대한 표준을 정하게 됨

ECMA에서는 Javascript의 표준만 정하는게 아닌 다른 표준안도 정하기 때문에 그것들과 구분하기 위해 숫자를 붙였고 이것이 262가 됨. ECMA 262는 자바스크립트의 표준 규격이라고 생각하면 된다. 현재 우리가 ES라고 부르는 것은 ECMA Script의 약자이며, ES5는 ECMA Script 5의 규격을 따른다고 생각하면 된다.

2. ES5와 ES6

ES5

배열에 forEach, map, filter, reduce, some, every와 같은 메소드들이 지원되었다.
Object에 대한 getter와 setter가 지원되었다.
Javascript strict모드가 지원되었다. (기존에 비해서 더 엄격하게 문법 검사를 진행한다.)
json 형식의 자료들을 지원한다. 과거에는 XML이라는 규격을 사용했다가, json이 인기를 끌면서 javascript 역시 지원을 하게 되었다.

-> ES6

ES6 혹은 ES2015. 두개가 같은 버전이고 불리는 이름만 다르다. 원래 ES는 몇년에 한 번씩 발표가 되었지만, ES5이후부터는 빠르게 변화하는 웹 생태계 때문에 1년에 한번씩은 갱신을 하자는 움직임들이 생겨나게 되었고, 이로 인해 단순한 숫자를 붙이기 보다는 갱신된 연도를 붙여서 새로운 이름을 만들자는 의견들이 생겨나게 되었다.

  • Hoisting 개선 : 기존 var키워드 사용으로 인한 호이스팅의 문제점을 방지하기 위해 블록 스코프를 가진 let과 const를 추가
  • 화살표 함수 : 코드의 간결화, this를 바인딩하지 않아(이전, 상위 this를 그대로 가리킴) 항상 전역 객체를 바라보는 함수의 this 바인딩을 우회하게 해줌
  • iterator와 generator 추가.
  • module의 import/export 추가.
  • Promise 도입 : 자바스크립트는 비동기적 언어이기 때문에 callback에 대한 이슈가 많았으나 이부분을 해결할 수 있는 문법을 제공한다.

정리

결국 웹 브라우저 점유율 싸움으로 발발된 JS 표준에 대한 확립이 오늘 날까지 지속적으로 발전하고 있어서 JS라는 언어로 더욱 다양한 것들을 할 수 있게 된 것 같다. 그리고 ES4는 정치적인 이유로 버려졌다는게 좀 흥미롭...

0개의 댓글