자바스크립트 특징
- 웬만해서 에러 없이 실행
- 작은 실수는 알아서 대응
- 되도록 손이 덜 가게끔 설계
- 자바스크립트 엔진 내부에서 암묵적으로 처리해 주는 기능도 많음
하지만, 이러한 특징은 편리하기도 하지만 내부 동작을 이해하기 어렵게 만들기도 함.
* 프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후 흐름을 제어하는 것.
자바스크립트란?
자바스크립트는 일반적인 프로그래밍 언어와 다르게 탄생했습니다.
웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도를 목적으로 합니다.
하지만, Front-End와 Back-End 영역의 프로그래밍 언어로 사용할 수 있는 명실상부한 범용 애플리케이션 개발 언어로 성장했습니다.
마이크로소프트에서 자바스크립트의 파생 버전인 "JScript"를 인터넷 익스플로러에 탑재했는데 JScript와 자바스크립트가 표준화되지 못하고 적당히 호환됐습니다. 이로 인해 크로스 브라우징 이슈가 발생해서 모든 브라우저에서 정상적으로 동작하는 웹페이지를 개발하기 어려워졌습니다. 그래서 자바스크립트의 파편화를 방지하고 모든 브라우저에서 정상적으로 동작하는 표준화된 자바스크립트의 필요성이 대두되기 시작했습니다. 그래서 1997년 7월 ECMA-262라 불리는 표준화된 자바스크립트 초판(ECMAScript 1) 사양이 완성되었고, 상표권 문제로 자바스크립트는 ECMAScript로 명명되었습니다.
버전 | 출시 연도 | 특징 |
ES1 | 1997 | 초판 |
ES2 | 1998 | ISO / IEC 16262 국제 표준과 동일한 규격을 적용 |
ES3 | 1999 | 정규표현식, try ... catch |
ES5 | 2009 | HTML5와 함께 출현한 표준안. JSON, strict mode, 접근자 프로퍼티, 프로퍼티 어트리뷰트 제어, 향상된 배열 조작 기능(forEach, map, filter, reduce, some, everey) |
ES6(ECMAScript 2015) | 2015 | let / const, 클래스, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, 스프레드 문법, rest 파라미터, 심벌, 프로미스, Map/Set, 이터러블, for ... of, 제너레이터, Proxy, 모듈 import / export |
ES7(ECMAScript 2016) | 2016 | 지수(**) 연산자, Array.prototype.includes, String.prototype.includes |
ES8(ECMAScript 2017) | 2017 | async / await, Object 정적 메서드(Object.values, Object.entries, getOwnPropertyDescriptors) |
ES9(ECMAScript 2017) | 2018 | Object rest / spread 프로퍼티, Promise.prototype.finally, async generator, for await ... of |
ES10(ECMAScript 2017) | 2019 | Object.fromEntries, Array.prototype.flat, Array.prototype.flatMap, optional catch binding |
ES11(ECMAScript 2017) | 2020 | String.prototype.matchAll, BigInt, globalThis, Promise.allSettled, null 병합 연산자, 옵셔널 체이닝 연산자, for ... in enumeration order |
최근댓글