ECMAScript 5 정의
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
ECMAScript(ES) 란? #
- ECMAScipt의 약자로 쉽게 말해 표준화된 스크립트 프로그래밍 언어이다. 자바스크립트는 ECMAScript를 따르며 확장 기능을 가진 스크립트라 할 수 있으며 EMCA-262 기술 규격에 의해 정의된 표준화 스크립트 프로그래밍 언어 이다. ECMAScript는 웹에서 널리 사용되며, 자바스크립트 또는 J스크립트로 생각할 수 있지만 두 용어는 특별한 의미 차이가 있다.
그림1 ECMAScript (출처 : 오늘도끄적끄적)
종류 #
판 | 출판일 | 이전 판과의 차이점 |
---|---|---|
1 | 1997년 6월 | 초판 |
2 | 1998년 6월 | ISO/IEC 16262 국제 표준과 동일한 규격을 적용하기 위해 변경 |
3 | 1999년 12월 | 강력한 정규 표현식, 향상된 문자열 처리, 새로운 제어문, try/catch 예외처리, 엄격한 오류 정의, 수치형 출력의 포메팅 |
4 | 삭제 | 언어의 얽힌 정치적 차이로 사용하지 않는다 |
5 | 2009년 12월 | 철저한 오류 검사, 하부집합인 "strict mode" 추가 |
5.1 | 2011년 6월 | ECMA 스크립트 표준, ISO/IEC 16262:2011 국제 표준 제3판과 함께 한다. |
그림1 ECMAScript 성장 과정 (출처 :Sencha)
ES3 (1999) #
- 흔히 알고 있는 자바스크립트
- 함수 단위의 스코프, 호이스팅, 모듈화 미지원, 프로토타입, 클로저 등등 자바스크립트의 기본적인 특징
- 대부분 브라우저에서 지원
- IE8까지 크로스 브라우징하는 환경이면 ES3를 사용
ES5 (2009) #
- 4는 너무 급변하여 거절되고, 그 후에 점진적인 개선책으로 5가 나오게 되었다. 기본적으로 IE9부터 본격적인 지원을, es5-shim을 사용하면 하위 버전에서도 특정 기능들을 지원해준다.
ES5에 추가된 기능 #
배열 #
forEach, map, filter, reduce, some, every와 같은 순환 메소드들이 생겼다. 이 메소드들은 개발자가 반복 횟수나 조건을 잘못 입력하는 등의 실수를 줄여주는 효과가 있다.
객체 #
객체의 프로퍼티에 대한 설정을 할 수 있다는 것이다.
객체를 생성/수정/복사하는 표준 메소드들(Object.create(), Object.defineProperty(), Object.freeze(), Object.assign() 등등)과 getter/setter 등등
또한 Object.keys 메소드를 쓰면 for in 메소드도 대체할 수 있게 된다.
strict 모드 #
에러가 나지 않고 미연에 방지하고자 코드를 섬세하게 체크한다.
참고 : Strict mode
bind() 메소드 #
this를 강제로 bind 시켜주는 메소드이다.
참고 : bind()
Lexical Environment #
참고 : Lexical Environment
JSON(JavaScript Object Notation) #
과거 통신을 할 때 데이터를 XML 형태로 많이 주고받았다. 하지만 JSON이 좀 더 경량화 돼 있는지 요새는 JSON이 대세다. JSON은 자바스크립트의 객체 리터럴과 생긴 건 유사한데 다음과 같은 차이점이 존재한다.
- 키는 무조건 큰따옴표(“”)로 감싼 문자열이어야한다.
- 주석은 사용할 수 없다.
- 프로퍼티로 메소드는 불가능하다.
- 프로퍼티에서도 메소드의 사용이 불가능하다.
통신을 위해 Object를 JSON으로 바꾸는 방법은 JSON.stringify(obj)이고, 자바스크립트 코드에서 사용하기 위해 JSON은 Object로 바꾸는 방법은 JSON.parse(json)이다.
ES5 주요함수 #
함수 | 설명 |
---|---|
Object.create | 자바스크립트에서 상속을 이용하기 위해서는 생성자 함수를 만든 뒤 프로토타입 체이닝을 이용해야 한다. |
Object.defineProperty | 객체의 필드를 정의하는 함수 |
Object.getPrototypeOf | 인자로 넘어오는 객체의 프로토타입을 추출한다. |
Object.keys | 인자로 넘어오는 객체의 키를 배열로 반환한다. |
Object.freeze | 객체를 얼린다라는 표현, 즉 불변(immutable)으로 만든다. |
Object.getOwnPropertyNames | 프로토타입 체이닝에 걸려있는 필드를 제외하고 객체가 직접 들고 있는 필드의 key를 배열형태로 반환한다. |
참고출처 #
관련 키워드 #
ES, ECMAScript, ecmascript, ECMA, ecma, es
Incoming Links #
Related Data Sciences (DataScience 0) #
Suggested Pages #
- 0.025 클로저
- 0.025 인터프리터형 스크립트 프로그래밍 언어
- More suggestions...