앞으로 기대되는 ECMAScript 기능
8743 단어 javascript
다음은 제가 특히 기대하는 몇 가지 예정된 ECMAScript 기능입니다.
일시적인
Docs , Cookbook , Polyfill
날짜/시간 API는 항상 JavaScript의 약점이었습니다. 이 문제를 해결하기 위해 moment.js(이미 사용되지 않음)와 같은 훌륭한 라이브러리가 등장했고 훌륭하게 수행했습니다.
그러나 이제 마침내 우리의 지식과 경험을 요약하고 최신의 강력한 날짜/시간 API를 JavaScript 표준 라이브러리에 도입할 수 있는 지점에 도달했습니다.
Temporal
는 Math
와 같은 유틸리티 함수로 채워진 모듈 역할을 하는 새로운 전역 개체입니다. API는 변경 불가능한 개체를 기반으로 하며 표준 시간대 및 그레고리력이 아닌 달력에 대한 뛰어난 지원이 있습니다.여기 몇 가지 예가 있어요.
// parsing a string
const d = Temporal.Instant.from('1969-07-20T20:17Z')
// just plain date
Temporal.PlainDate.from({ year: 2000, month: 8, day: 2 });
// => 2000-08-02
// difference between two points
// in time in different time zones
const { from } = Temporal.ZonedDateTime
from('2020-03-08T11:55:00+08:00[Asia/Hong_Kong]')
.until(from('2020-03-08T09:50:00-07:00[America/Los_Angeles]'))
//=> PT12H55M
이 훌륭한 API의 잠재력을 실제로 실현하려면 the cookbook을 훑어보는 것이 좋습니다.
어레이 그룹화
Proposal , Polyfill
이 작은 제안은 Array의 프로토타입에 2개
group
와 groupToMap
를 추가합니다.두 방법 모두 특정 기준에 따라 배열의 항목을 그룹화하는 데 사용됩니다(가장 가까운 친척은 lodash의 groupBy ).
const users = [
{ name: "Jane" },
{ name: "John" },
{ name: "Tom" }
]
users.group(u => u.name.toLowerCase().charAt(0))
// {
// "j": [{name: "Jane"}, {name: "John"],
// "t": [{ name: "Tom" }]
// }
groupToMap
는 유사하게 작동하지만 Map 을 제공합니다. 문자열이 아닌 키가 필요할 때 유용할 수 있습니다.음, other reasons to prefer Maps이 있습니다.
어레이의 복사에 의한 변경(단계 3)
Proposal , Polyfill
reverse
, sort
또는 splice
와 같은 Array의 메서드에 어떤 문제가 있습니까? 글쎄요, 그들은 모두 훌륭합니다. 유일한 문제는 배열을 제자리에서 수정하여 FP 코드에서 사용하기 어렵게 만든다는 것입니다.이 제안은 유사하게 작동하지만 원본 배열을 수정하지 않는 배열(및 typed arrays)에 대한 4개의 새로운 비변형 메서드(
toReversed()
, toSorted()
, toSpliced()
및 with()
)를 도입합니다.마지막 것은 배열의 단일 요소를 대체하는 데 사용됩니다.
['j', 'a', 'n', 'e'].with(2, 'd')
//=> ['j', 'a', 'd', 'e']
레코드와 튜플
Proposal , Playground
레코드와 튜플은 객체 및 배열과 유사하지만 완전히 변경할 수 없는 새로운 기본 데이터 구조입니다.
const record = #{ name: "John", surname: "Smith" }
const tuple = #[1, 2, 3]
구문은 그것들과 객체/배열 사이의 유사점을 강조합니다.
#
접두사를 붙이기만 하면 됩니다.레코드와 튜플은 다른 기본 값(다른 레코드/튜플 포함)만 포함할 수 있습니다.
이 제한으로 인해 깊이 변경이 불가능합니다.
다른 프리미티브와 마찬가지로 동등성 비교
===
가 작동하도록 합니다. 두 레코드/튜플이 구조적으로 깊이 동일하면 ===
가 true
를 반환하며 이는 큰 문제입니다.이러한 데이터 구조를 도입하는 것은 JavaScript 기능 기능을 향상시키는 좋은 방법입니다(불변성은 기능 패러다임에서 중요하므로).
그러나 이것은 상당히 큰 주제이므로 전용 기사에서 다시 설명하겠습니다.
다음에 갈 곳
그것들은 내가 기다릴 수 없는 훌륭한 JavaScript 제안이었습니다. 당신도 그들을 좋아하길 바랍니다.
더 많은 제안은 the official GitHub page에서 찾을 수 있습니다.
Reference
이 문제에 관하여(앞으로 기대되는 ECMAScript 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/janis_t/upcoming-ecmascript-features-im-excited-about-pba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)