프로그램개발/ClientSide(JavaScript,Angular,Vue)

자바스크립트 표준화 언어 ES2019의 새로운 기능을 소개합니다

크레도스 2019. 8. 1. 16:19

출처 : https://www.codingworldnews.com/article/view/1325




매년 ECMAScript(ES) 스크립팅 언어 사양 표준 새로운 버전이 출시된다.

10번째 에디션(ES2019 또는 ES10)인 이번 버전은 올해 초에 완료되어 지난달 발간되었다 .

이번 사양이 제공하는 흥미로운 기능 중 일부는 Object.fromEntries (), trimStart (), trimEnd (), flat (), flatMap (), 심볼 객체의 설명 속성, 선택적 catch 바인딩 등 이다. 이런 기능은 개발자가 시험 사용해 볼 수 있는 최신 버전의 Firefox 및 Chrome에도 포함되었다.


Object.fromEntries ()

JavaScript에서는 ES2017 표준에 도입된 Object.entries () 메서드를 사용하여 객체의 배열을 쉽게 변환 할 수 있었다. ES2019에는 정확히 반대의 작업을 수행 할 수 있게 해주는 Object.fromEntries () 메서드가 도입되었다. 파이썬의 dict () 함수와 비슷하게 이 메소드를 사용하면 키 - 값 쌍의 목록을 객체로 변환 할 수 있다.


Array.prototype.flat () 및 Array.prototype.flatMap ()

작년에 Array.prototype.flatten () 메소드가 ES2019의 Array.prototype.flat () 메소드로 이름이 바뀌었다. 이것은 MooTools의 구현을 깨뜨린 것인데 지정된 깊이까지 배열을 재귀적으로 플랫화 한다. 기본값은 1이며, 두번째 메서드인 'Array.prototype.flatMap'은 각 요소의 매핑을 수행한 다음 결과를 새 배열로 플랫화 한다.


trimStart () 및 trimEnd ()

ES2019에서 제안된 새로운 trimStart () 및 trimEnd () 메서드의 목적은 trimLeft () 및 trimRight () 메서드와 동일하다. trimStart ()는 문자열의 시작 부분에서 공백을 제거하는데 사용되지만 trimEnd ()는 문자열 끝에서 공백 문자를 제거하는 데 사용된다. 이것은 padStart / pad와의 일관성을 유지하기 위해 도입되었다. 웹 호환성을 유지하려면 trimLeft () 및 trimRight ()가 별칭이 된다.


Function.toString ()

이전에는 함수에서 toString () 메서드를 호출했을때 소스코드에서 모든 공백, 줄 바꿈 및 주석을 제거하는 데 사용되었다. 이제 함수 소스 코드가 정의 된대로 정확하게 반환된다.


Description property for Symbol objects

ES2019는 Symbol객체에 대해 새로운 읽기전용 '설명' 속성을 도입했다. Symbol 객체에 추가하여 디버깅 목적으로 설명이 포함된 문자열을 반환 할 수 있다.

Well-formed JSON.stringify()

JSON RFC 에 따르면 JSON 텍스트는 "닫힌 생태계의 범위를 벗어난" 공유 할 때 UTF-8을 사용하여 인코딩 해야 한다. 그러나 JSON.Stringify ()는 때때로 문자열과 코드 포인트, 특히 UTF-8로 표현 할 수 없는 대리 범위 (U + D800-U + DFFF)를 반환 할 수 있다. 이 ES2019 제안은 JSON.stringify ()가 잘못된 형식의 유니코드 문자열을 반환하는 것을 방지한다.

많은 개발자들이 새로운 ES2019 제안에 흥미를 느끼고 있다. 해커 뉴스에 사용자는 "Object.fromEntries는 매우 유용 할 것이고, 오랫동안 네이티브 기능이 된 것이 놀랍다. "다른 사람들은 TC39 프로세스의 스테이지 4에 도달 하기 위해 패턴 일치 및 선택적 체인 제안을 기다리고 있을 것이다." 이제 패턴 일치와 선택적 체인을 얻을 수 있다면 실제로 상황이 향상 될 것입니다"라고 말했다.