ES5는 뭐고 ES6는 뭘까?

청포도봉봉이·2023년 4월 8일
0

메모오

목록 보기
9/11
post-thumbnail

ES5

ECMAScript 5 (ES5)는 2009년에 발표된 자바스크립트 언어의 5번째 버전입니다. 이전 버전인 ES3에서는 자바스크립트 언어의 기본적인 구조와 기능이 정의되었습니다. 그러나 ES5에서는 새로운 문법과 기능이 추가되어, 자바스크립트 언어의 표준이 업데이트되었습니다.

ES5에서 추가된 기능 중 가장 중요한 것은 "strict mode"입니다. 이 기능을 사용하면 자바스크립트 엔진이 더 엄격한 규칙으로 코드를 실행하므로, 오류를 더 쉽게 발견하고 디버깅할 수 있습니다.

또한, ES5에서는 함수와 객체를 다루는 방법이 개선되었습니다. 예를 들어, "Object.create()" 함수를 사용하여 새로운 객체를 생성하고, "Object.defineProperty()" 함수를 사용하여 객체의 속성을 정의할 수 있습니다. 또한, "Array.prototype.forEach()" 함수를 사용하여 배열을 반복하는 방법이 개선되었습니다.

ES5는 현재 대부분의 브라우저에서 지원되므로, 많은 프로젝트에서 여전히 사용되고 있습니다. 그러나 ES6 이상의 버전에서는 더 많은 기능과 문법이 추가되어 있으므로, 최신 자바스크립트 버전을 사용하는 것이 더욱 추천됩니다.

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 속성을 덮어썼습니다.


ES6의 추가된 기능은 코드의 가독성과 유지보수성을 향상시키는 동시에, 더욱 효율적인 프로그래밍이 가능하게 합니다. ES6는 현재 대부분의 브라우저에서 지원되지만, 구형 브라우저에서는 지원되지 않을 수 있으므로, 이를 고려하여 코드를 작성해야 합니다.
profile
자존감 낮아질 시간에 열심히 공부하고 커밋하자😊😊

0개의 댓글