1. JavaScript ?
- 1995년, Netscape 회사의 Brendan Eich 라는 사람에 의해 최초 개발된 객체(object) 기반의 스크립트 언어.
- HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있음.
- 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용 가능함.
- 현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있음.
2. ES ?
- ECMAScript 의 줄임말.
- 넷 스케이프 사의 자바스크립트가 인기를 끌자, MS사가 자바스크립트를 Reverse engineering 해서 IE 3에 JScript라는 이름으로 자바스크립트를 탑재함. 그런데 문제는 두 스크립트가 너무 제각각이라, 같은 기능을 구현하기 위해 개발자가 해야하는 일들이 더 많아졌음. 이 브라우저 전쟁 시절 개발자들은 몸살을 앓았음.
- 이에 넷스케이프 사는 1996년 European Computer Manufacturers Association(ECMA, 현 ECMA International) 에 찾아가 자바스크립트에 대한 표준안을 만들기 위한 작업을 착수함.
- 1997년 7월 첫 번째 ECMAScript 1 language specification 이 시장에 나오게 됨. ECMAScript 는 브라우저에서 동작하는 언어를 만들 때, 그리고 그 언어를 이해할 수 있는 엔진이 이해하기 위해 '변수는 이렇게 만들고, 함수는 이렇게 정의한다' 등의 문법적인 사항들을 잘 정리한 문서임. 그리고 그 뒤에 새로운 버전들이 계속 추가적으로 나오게 됨.
※ ECMA에서는 자바스크립트의 표준만 내리는 게 아니라 다른 표준안도 정하기 때문에 그와 구분하기 위해 숫자를 붙였는데 그것이 262. ECMA262로 보이면 자바스크립트 표준 규격으로 이해.
- 특히 ECMAScript 3 에서는 새로운 에러 핸들링(error handling) 방식과 관련된 문법이나, '==='(three equal operator) 관계 연산자 등이 새로 추가됨.
- 판별 출판년도
ECMAScript 1 in 1997
ECMAScript 2 in 1998
ECMAScript 3 in 1999
ECMAScript 4 in 2000
ECMAScript 5 in 2009
ECMAScript 6 in 2015
3. ES5/ES6 ?
- 2000년대 들어 MS 사의 Internet Explorer 의 시장 점유율이 95%에 다다르면서, MS 사가 ES 표준안을 따르지 않는 상황 발생하며 ES4 이후 표준안이 진척되지 못하고 지지부진한 상황을 맞이함.
- 그러던 중 2008년 Google 사가 Chrome브라우저를 출시하게 됨. 크롬 브라우저는 JIT (just-in-time compliation)이라는 굉장히 강력한 엔진이 포함된 브라우저임. JIT 로 인해 자바스크립트를 실행하는 속도가 엄청나게 빨라지게 됨.
- 크롬의 획기적인 등장에 시장에 존재하던 다른 브라우저들은 개선에 대한 좋은 자극을 받게 되어, 2008년 7월 모든 브라우저들이 모여 표준화를 만들어 서로 윈윈해보자는생산적인 대화를 하게 됨.
- 그리하여 2009년 ECMAScript 5, 2015년 ECMAScript 6 가 나오게 됨.
ES 5에 추가된 기능
1. arror 메소드 추가
forEach, map, filter, reduce, some, every 등
2. object 에 대한 getter/setter 지원
3. strict mode 지원
4. JSON 지원
5. bind() 메소드 추가
*참고 : Changes to JavaScript, Part 1: EcmaScript 5
https://www.youtube.com/watch?v=Kq4FpMe6cRs
ES 6에 추가된 기능
1. let, const 키워드 추가
2. arrow 문법 지원
3. iterator / generator 추가
4. module import / export 추가
5. Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가 되었습니다.)
6. Default, Rest 파라미터
7. 해체 할당, Spread 연산자
8. 템플릿 리터럴
9. 호이스팅이 사라진 것 같은 효과
10. 함수 단위 스코프에서 블록 단위 스코프로 변경
'개발일지 Dev Diaries > 항해99 Hanghae99' 카테고리의 다른 글
[항해99 28일차] (22.04.03) WIL_주특기 숙련 마감, 주특기 심화 시작 (0) | 2022.04.03 |
---|---|
[항해99 27일차] (22.04.02) 자바스크립트/리액트 파고들기 (0) | 2022.04.03 |
[항해99 26일차] (22.04.01) 주특기 심화 첫째 날 (0) | 2022.04.01 |
[항해99] 스파르타코딩클럽 : 웹개발 종합반 2주차 (0) | 2022.03.02 |
[항해99]_스파르타 코딩클럽 웹개발 종합반 1주차 (0) | 2022.02.10 |
댓글