Skip to content

ECMAScript 5 정의 #
Find similar titles

Structured data

Category
Programming

ECMAScript(ES) 란? #

  • ECMAScipt의 약자로 쉽게 말해 표준화된 스크립트 프로그래밍 언어이다. 자바스크립트는 ECMAScript를 따르며 확장 기능을 가진 스크립트라 할 수 있으며 EMCA-262 기술 규격에 의해 정의된 표준화 스크립트 프로그래밍 언어 이다. ECMAScript는 웹에서 널리 사용되며, 자바스크립트 또는 J스크립트로 생각할 수 있지만 두 용어는 특별한 의미 차이가 있다. image

    그림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판과 함께 한다.

image

그림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은 자바스크립트의 객체 리터럴과 생긴 건 유사한데 다음과 같은 차이점이 존재한다.

  1. 키는 무조건 큰따옴표(“”)로 감싼 문자열이어야한다.
  2. 주석은 사용할 수 없다.
  3. 프로퍼티로 메소드는 불가능하다.
  4. 프로퍼티에서도 메소드의 사용이 불가능하다.

통신을 위해 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

Suggested Pages #

0.0.1_20140628_0