ECMAScript 5 (ES5)는 2009년에 발표된 자바스크립트 언어의 5번째 버전입니다. 이전 버전인 ES3에서는 자바스크립트 언어의 기본적인 구조와 기능이 정의되었습니다. 그러나 ES5에서는 새로운 문법과 기능이 추가되어, 자바스크립트 언어의 표준이 업데이트되었습니다.
ES5에서 추가된 기능 중 가장 중요한 것은 "strict mode"입니다. 이 기능을 사용하면 자바스크립트 엔진이 더 엄격한 규칙으로 코드를 실행하므로, 오류를 더 쉽게 발견하고 디버깅할 수 있습니다.
또한, ES5에서는 함수와 객체를 다루는 방법이 개선되었습니다. 예를 들어, "Object.create()" 함수를 사용하여 새로운 객체를 생성하고, "Object.defineProperty()" 함수를 사용하여 객체의 속성을 정의할 수 있습니다. 또한, "Array.prototype.forEach()" 함수를 사용하여 배열을 반복하는 방법이 개선되었습니다.
ES5는 현재 대부분의 브라우저에서 지원되므로, 많은 프로젝트에서 여전히 사용되고 있습니다. 그러나 ES6 이상의 버전에서는 더 많은 기능과 문법이 추가되어 있으므로, 최신 자바스크립트 버전을 사용하는 것이 더욱 추천됩니다.
ES6 (ECMAScript 2015)는 ES5 이후에 발표된 자바스크립트 언어의 6번째 버전입니다. ES6에서는 새로운 문법과 기능이 추가되어, 자바스크립트의 표현력과 유연성이 더욱 향상되었습니다.
다음은 ES6에서 추가된 주요 기능 중 일부입니다.
- let과 const 키워드
변수를 선언할 때 let과 const 키워드를 사용할 수 있습니다.
let으로 선언한 변수는 블록 범위(scope)를 갖고, const로 선언한 변수는 상수(constant)로 값을 변경할 수 없습니다.
- 화살표 함수(Arrow function)
간결하게 함수를 선언할 수 있는 새로운 함수 표현식입니다.
- 클래스(Class)
객체 지향 프로그래밍을 위한 클래스 문법이 추가되었습니다.
- 모듈(Module)
자바스크립트 파일을 모듈화하여 필요한 부분만 불러와서 사용할 수 있습니다.
- 향상된 객체 리터럴(Enhanced Object Literals)
객체를 간결하게 초기화할 수 있는 문법이 추가되었습니다.
- Rest 파라미터와 Spread 연산자
함수의 파라미터나 배열의 요소를 간결하게 다룰 수 있는 문법입니다.
- Promise와 async/await
비동기적인 코드를 간결하게 작성할 수 있는 Promise와 async/await 문법이 추가되었습니다.
- Object spread operator 는 객체를 복제하거나 병합하는 데 사용됩니다. 이 연산자는 세 개의 마침표(...)로 표시됩니다.
객체 전개 연산자를 사용하면 기존 객체의 모든 속성을 새로운 객체로 복사하고 추가로 새로운 속성을 추가 할 수 있습니다. 이를 통해 코드를 간결하게 작성할 수 있으며, 객체 병합이나 변경 작업을 더 쉽게 수행할 수 있습니다.
예를 들어, 다음과 같이 사용할 수 있습니다
const obj1 = { foo: 'bar', x: 42 }; const obj2 = { foo: 'baz', y: 13 }; const newObj = { ...obj1, ...obj2 }; console.log(newObj); // { foo: 'baz', x: 42, y: 13 }
위의 예제에서는 obj1과 obj2를 병합하여 newObj 객체를 만들고 있습니다. newObj 객체는 obj1과 obj2의 모든 속성을 포함하고 있으며, obj2의 foo 속성이 obj1의 foo 속성을 덮어썼습니다.