ECMAScript
Ecma International(정보통신을 위한 비영리 표준 기구)에 의해 정의된 ECMA-262라는 기술 규격에 의해 정의 된 `범용 스크립트 언어`의 표준
`JavaScript의 표준 사양을 정의하는 언어`
(+) 스크립트 언어와 범용 프로그래밍 언어
스크립트 언어(scripting language): `응용 소프트웨어를 제어하는 언어`로 `독립적으로 사용`할 수 있으며, 컴파일 없이 실행가능한 언어. 사용자가 직접 프로그램을 의도에 따라 동작함
ex) JavaScript, Python, 셸(Shell) 스크립트
범용 프로그래밍 언어(general-purpose programming language): 다양한 도메인의 소프트웨어를 개발하기 위해 설계된 프로그래밍 언어
ex) HTML은 웹 페이지 작성에만 사용되기 때문에 범용 언어가 아님
ECMAScript는 특정 프로그래밍 언어의 구현을 위한 `기초적인 규칙과 표준`을 제공
스크립트 언어들이 `모두 호환`되도록 만들어진 표준화된 스펙
프로그래밍 언어를 위한 규칙, 세부 사항, 기능 등을 정의하는 `표준`이며 JavaScript, JScript, ActionScript 등 여러 언어가 ECMAScript 표준을 기반으로 구현되어 있음
이 표준은 언어의 구문, 타입, 문장, 키워드, 예약어, 객체, 프로토콜 등을 포함하고 있어, `호환 가능한 프로그래밍 언어`를 개발하는 데 필요한 기반을 제공함
즉, ECMAScript는 프로그래밍 언어 자체가 아니라, 프로그래밍 언어가 따라야 할 표준
ECMA-262
Ecma 인터내셔널에 의해 제정된 표준(규칙)
정리하면
Ecma International은 국립국어원
ECMA-262는 표준어
ECMAScript는 국립국어원에서 제정한 표준어 규칙(발음, 맞춤법 등)
ECMAScript가 특정 프로그래밍 언어(예: JavaScript)가 따라야 하는 규칙과 표준을 정의하는 역할
JavaScript
JavaScript는 ECMAScript 사양을 준수하는 범용 스크립팅 언어
ECMAScript: 어떻게 스크립트 언어를 만들 수 있을까?
JavaScript: 어떻게 스크립트 언어를 구현할 수 있을까?
ES6
ECMAScript 표준의 여섯 번째 버전, `JavaScript 언어에 새로운 기능과 개선 사항 도입`
ES6 - 주요 기능
1. let const 키워드
블록 범위 변수 선언
let x = 10;
const y = 20;
2. 화살표 함수
간결한 함수 표현식
const add = (a, b) => a + b;
3. 템플릿 리터럴
문자열 내에서 표현식을 포함할 수 있는 새로운 방법
let name = 'John';
let greeting = `Hello, ${name}!`;
4. 클래스
객체 지향 프로그래밍을 위한 문법
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, ${this.name}`);
}
}
5. 모듈
import와 export를 통해 모듈 사용 가능
// module.js
export const myFunction = () => { /* ... */ };
// main.js
import { myFunction } from './module.js';
6. 프로미스
비동기 작업 처리하기 위한 방법
let promise = new Promise((resolve, reject) => {
// 비동기 작업 수행
});
7. 디스트럭처링 할당
배열이나 객체의 값을 변수로 쉽게 할당
let [a, b] = [1, 2];
let {name, age} = {name: 'John', age: 30};
8. 심볼
고유한 식별자를 만들 수 있는 새로운 원시 데이터 타입
let sym = Symbol('description');
정리
- ECMAScript는 JavaScript와 같은 스크립트 언어의 `표준 사양`이다
- `ES6`(ECMAScript 6)은 ECMAScript의 여섯번째 버전으로 새로운 기능을 도입해 JavaScript언어의 표현력과 사용성을 크게 향상 시켰다.