ECMAScript

ECMAScript

ECMAScript (ES)는 Ecma International에 의해 표준화된 스크립트 언어 스펙으로서 JavaScript를 표준화하기 위해 만들어 졌다. ECMAScript는 JavaScript, JScript, ActionScript 등에 대한 표준으로서, 웹 클라이언트 스크립트 혹은 Node JS 등에 사용된다.

ECMAScript는 1997년 ECMAScript Version 1 (줄여서 ES1)으로부터 현재까지 계속 버전을 업그레이드 하면서 새로운 버전을 내놓고 있다. 중요한 버전으로는 1999년에 발표된 ECMAScript Version 3 (ES3), 2009년에 발표된 ES5, 2015년의 ES6 (ECMAScript 2015, ES2015 로 불리움), ES10 (ES2019), ES2020, ESNext 등이 있다. 2015년부터는 ES6 와 같은 ECMAScript 버전 대신 ECMAScript 2015 혹은 ES2015와 같이 해당 연도를 버전에 사용하게 되었다. ESNext는 차기 버전으로 개발되고 있는 ECMAScript를 의미한다.

tsc 컴파일러 target 옵션

TypeScript 컴파일러(tsc)는 TypeScript 코드를 JavaScript 코드로 변환하는 일을 하는데, 이때 JavaScript를 어느 ECMAScript 버전으로 변환할 지를 결정하는 것이 --target 옵션이다. tsc 컴파일러의 --target 옵션 (혹은 줄여서 -t 옵션)은 다음과 같은 옵션 중에 하나를 선택한다.

    es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020, esnext

TypeScript 컴파일러는 디폴트로 es3 버전으로 변환을 수행하며, 그 이외의 버전으로 변환하기 위해서는 --target 옵션을 지정해야 한다. 예를 들어, 아래는 TypeScript 코드를 ES6로 변환하는 예이다.

    C:\> tsc --target ES6 test.ts

--target 옵션의 차이를 살펴 보기 위해 아래와 같은 TypeScript 코드를 가정해 보자.

    // TypeScript (test.ts)
    let fn = (a, b) => a + b;    

이를 --target 옵션없이 디폴트(ES3)로 컴파일하면 ES6 이전에는 Arrow 함수가 없으므로 아래와 같이 출력될 것이다.

    // tsc test.ts 로 컴파일했을 때
    var fn = function (a, b) { return a + b; };

하지만, --target 옵션에 ES6 이상을 쓰게 되면, 아래와 같이 출력된 JavaScript에서 Arrow 함수를 사용하게 된다.

    // tsc --target ES6 test.ts 로 컴파일했을 때
    let fn = (a, b) => a + b;
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.