분류 javascript

간단한 예로 알아 보는 ES2020 특징

컨텐츠 정보

  • 조회 511 (작성일 )

본문

이 시리즈에서는 2015 년부터 오늘까지 EcmaScript 특징을 보여줍니다.


https://dev.to/carlillo/es2020-features-in-simple-examples-1513 


소개 


ES2020은 2020 년에 해당하는 ECMAScript 버전입니다.

이 버전에는 ES6 (2015)에 나타난 것만큼 많은 새로운 기능이 포함되어 있지 않습니다. 그러나 몇 가지 유용한 기능이 통합되었습니다.


이 기사에서는 쉬운 코드 예제에서 ES2020이 제공하는 기능을 소개합니다. 

이러한 방식으로 복잡한 설명 없이도 새로운 기능을 빠르게 이해할 수 있습니다.


물론, 가장 잘 소개 된 JavaScript를 완전히 이해하려면 JavaScript에 대한 기본 지식이 필요합니다.


ES2020의 새로운 #JavaScript 기능은 다음과 같습니다.


➡️ String.prototype.matchAll
➡️ import()
➡️ BigInt
➡️ Promise.allSettled
➡️ globalThis
➡️ for-in mechanics
➡️ Optional Chaining
➡️ Nullish coalescing Operator 


String.protype.matchAll 


matchAll() 메소드는 그룹 캡처를 포함하여 정규 표현식에 대해 문자열과 일치하는 모든 결과의 반복자를 리턴합니다.


0%2A1m79UsEsrZ4r6WbZ.png 


Dynamic import 


Dynamic import()는 요청 된 모듈의 모듈 네임 스페이스 객체에 대한 약속을 반환합니다. 따라서 이제 async / await를 사용하여 가져 오기를 변수에 할당 할 수 있습니다.

0%2ActjC9soy9w5T6bvz.png 


BigInt — Arbitrary precision integers 


BigInt는 7 번째 기본 유형이며 임의 정밀도 정수입니다. 변수는 이제 9007199254740992에서 최대 값이 아닌 ²⁵³ 숫자를 나타낼 수 있습니다.


0%2AonvFb9K4FoJEQI8L.png 


Promise.allSettled 


Promise.allSettled는 일련의 약속 상태 스냅 샷으로 이행 된 약속을 반환하지만, 원래의 모든 약속이 확정 된 후에 만 ​​이행 또는 거부됩니다.


약속이 보류 중이 아닌 경우, 즉 약속이 이행 또는 거부 된 경우 약속이 해결되었다고 말합니다.


0%2AiwlDqeH4nJft4bBO.png 


Standardized globalThis object 


전 세계적으로 ES10 이전에는 표준화 되지 않았습니다. 프로덕션 코드에서는 다음과 같은 괴물을 작성하여 여러 플랫폼에서 이를 "표준화"합니다.


0%2A_5WJeNyD92zaSkj4.png 


for-in mechanics 


ECMA-262는 (a in b)의 순서를 거의 그대로 유지하지만 거의 모든 경우에 실제 엔진은 일관성이 있는 경향이 있습니다.


for-in 순서의 완전한 사양에 대한 합의를 얻기 위한 역사적 노력은 부분적으로 실패했습니다. 부분적으로 모든 엔진에는 많은 작업의 결과이며 실제로 다시 방문하고 싶지 않은 자체 고유 한 구현이 있기 때문입니다.


결론적으로, 다른 엔진들은 동작이 표준화 되도록 for (a in b) 제어 구조를 사용할 때 속성이 반복되는 방식에 동의했습니다.


Nullish coalescing Operator 


속성 액세스를 수행 할 때 속성 액세스 결과가 null이거나 정의되지 않은 경우 기본값을 제공하는 것이 좋습니다. 현재 JavaScript에서 이러한 의도를 표현하는 일반적인 방법은 || 운영자.


0%2AQmmD9FX-IlVhrxSx.png 


이것은 null 및 undefined 값의 일반적인 경우에는 잘 작동하지만 놀라운 결과를 초래할 수 있는 많은 잘못된 값이 있습니다.


nullary 통합 연산자는 이러한 경우를 보다 잘 처리하기 위해 null 값에 대해 동등 검사 (널 또는 정의되지 않음)를 제공합니다. 왼쪽의 수식이 ?? 연산자는 undefined 또는 null로 평가되고 오른쪽이 반환 됩니다.

0%2A7ec8CW7rvYSjCqBs.png 


Optional Chaining 


트리와 같은 구조에 깊은 속성 값을 찾을 때 종종 중간 노드가 존재하는지 확인해야 합니다.


선택적 연쇄 연산자를 사용하면 자체 반복 및 / 또는 중간 결과를 임시 변수에 할당하지 않고도 이러한 경우를 대부분 처리 할 수 ​​있습니다.


0%2AalRDfnMCiso9WSWa.png 


또한 많은 API는 객체 또는 null / undefined를 반환하며 null이 아닌 경우에만 결과에서 속성을 추출하려고 할 수 있습니다.


0%2A_YzdDQCPlmFqk9G8.png 


누락 된 사례에 대해 undefined 이외의 다른 값을 원할 경우 일반적으로 Nullish 통합 연산자를 사용하여 처리 할 수 ​​있습니다.


0%2Ab_ex0BMSmzl1qSTS.png 


결론 


JavaScript는 라이브 언어이며 웹 개발에 매우 ​​건강합니다. 2015 년에 ES6이 등장한 이후로 우리는 언어의 역동적 인 진화를 경험하고 있습니다. 이 글에서는 ES2020에서 발생하는 기능을 검토했습니다.


이러한 기능 중 많은 기능이 웹 응용 프로그램 개발에 반드시 필요한 것은 아니지만 트릭이나 세부 정보를 사용하여 이전에 달성 할 수 있는 가능성을 제공합니다.