자바스크립트가 나온 이후 인기를 끌자, IE 말고도 다양한 브라우저들이 개별적으로 자바스크립트 문법을 만든다.
그 결과로, 각 브라우저 간 호환성을 위해 개발자들은 많은 고생하게 된다.
자바스크립트를 개발한 넷스케이프 사는 ECMA International(국제 표준화 기구)에 표준화를 요청했고,
1997년 7월에 ECMAScript가 완성된다.
ECMAScript
ECM-262 기술 규격에 따라 표준화된 스크립트 언어이다.
스크립트 언어는 자바스크립트, 액션 스크립트, J 스크립트 등이 있다.
* 스크립트 언어: 컴파일이나 링크 단계 없이 인터프리터에 의해 바로 코드를 실행하는 언어
* 컴파일(소스코드를 0,1로 이루어진 기계어로 번역)
* 링크(소스파일, 라이브러리 하나로 병합)
* 인터프리터: 소스코드를 한줄씩 읽어서 그때그때 해석하고 실행하는 프로그램
자바스크립트도 액션 스크립트도 J 스크립트도 모두 ECMAScript를 기반으로 둔다.
ECMAScript를 줄여서 "ES + 숫자"라고 칭하기도 한다. ES6부턴 숫자 대신 연도를 붙여 ES2015라고도 한다.
ES5 VS ES6
개발을 하다보면 ES5와 ES6를 많이 들을 수 있는데 ES6가 많이 언급되는 이유는 아래와 같다.
- 새로운 기능과 문법 도입
- var 대신 let, const 사용
- 화살표 함수
- 클래스
- 객체 리터럴 표현식
- 비구조화 할당
- 새로운 메소드 추가
- 비동기 프로그래밍
- Promise 객체 추가
- IE 지원 X
- 코드를 Babel과 같은 트랜스파일러를 사용하여 트랜스파일링하거나 polyfill 사용
더보기
트랜스 파일링
- ES6로 작성된 문법을 ES5 문법으로 변환
Polyfill
- 지원하지 않는 코드를 지원 가능하도록 변환한 코드
ex) closet 메서드는 IE 지원 X
아래의 polyfill 코드를 넣으면 closet 메서드 사용 가능
// Element.closest()
if (!Element.prototype.matches) {
Element.prototype.matches =
Element.prototype.msMatchesSelector ||
Element.prototype.webkitMatchesSelector;
}
if (!Element.prototype.closest) {
Element.prototype.closest = function (s) {
var el = this;
do {
if (Element.prototype.matches.call(el, s)) return el;
el = el.parentElement || el.parentNode;
} while (el !== null && el.nodeType === 1);
return null;
};
}
'Front-End > JavaScript' 카테고리의 다른 글
[JS] var, let, const (0) | 2024.02.22 |
---|---|
[JS] JavaScript Engine (0) | 2023.10.23 |
[JS] JavaScript (1) | 2023.05.31 |