>웹 프론트엔드 >JS 튜토리얼 >5 가지 흥미 진진한 새로운 JavaScript 기능

5 가지 흥미 진진한 새로운 JavaScript 기능

Christopher Nolan
Christopher Nolan원래의
2025-02-08 13:40:12975검색

5 Exciting New JavaScript Features in 2024 2024 JavaScript Core 기능 Prospect

이 기사는 2024 년에 예상되는 새로운 JavaScript 기능을 심도있게 살펴볼 것입니다. 2024 년에는 ECMAScript 버전에 포함될 가능성이 높습니다 : Tempal, Pipeline Operator, Records and Tuples, 정규 표현/V 깃발 및 데코레이터. ecmascript update ES6 업데이트 이후 매년 새로운 JS 버전이 출시되었으며 올해의 ES2024 버전은 6 월경에 출시 될 것으로 예상됩니다. ES6은 전임자 ES5 이후 6 년 후 거대한 버전 업데이트입니다. 브라우저 제조업체와 JavaScript 개발자는 모두 많은 기능 업데이트에 압도됩니다. 이런 일이 다시 발생하지 않기 위해 매년 새 버전이 출시 될 예정입니다.

매년 새로운 버전을 출시하려면 새로운 기능에 대한 제안, 토론, 평가 및위원회 투표가 포함됩니다. 이 프로세스를 통해 브라우저는 공식적으로 언어에 추가되기 전에 기능을 구현하려고 시도하여 구현 문제를 해결하는 데 도움이됩니다. 앞에서 언급했듯이 JavaScript (또는 ECMAScript)의 새로운 기능은 기술위원회 39 (TC39)에 의해 결정됩니다. TC39는 모든 주요 브라우저 제조업체와 JavaScript 전문가의 담당자로 구성됩니다. 그들은 정기적으로 만나 새로운 언어의 새로운 기능과 구현 방법에 대해 논의합니다. 새로운 기능은 제안서 형태로 제시되며,위원회 회원은 각 제안이 다음 단계로 이동할 수 있는지 여부를 결정하기 위해 투표합니다. 각 제안에는 4 단계가 있습니다. 제안이 4 단계에 도달하면 다음 ES 버전에 포함될 것으로 예상됩니다. ES 사양의 중요한 부분은 후진 호환이어야한다는 것입니다. 이는 이전 ES 버전이 실행되는 방식을 변경하여 새로운 기능이 "인터넷을 깨뜨릴 수 없다"는 것을 의미합니다. 따라서 기존 방법이 작동하는 방식을 변경할 수 없으며 잠재적으로 기존의 방법을 사용하는 웹 사이트는 충돌의 위험이있을 수 있기 때문에 새로운 방법 만 추가 할 수 있습니다. 모든 제안의 전체 목록은 여기에서 볼 수 있습니다.

시간적

2022 JS 상태 설문 조사에서 "현재 JavaScript가 가장 부족하다고 생각하는 것은 무엇입니까?" 이로 인해 시간 객체를 대체 할 수있는 표준 글로벌 객체를 제공하고 JavaScript 개발자가 수년에 걸쳐 날짜를 다루는 데 발생한 많은 문제를 수정하는 표준 글로벌 객체를 제공했습니다. JavaScript의 날짜는 거의 항상 두통입니다. 날짜의 어려움으로 인해 이러한 문제를 해결하려고 노력하면서 Moment, Day.js 및 Date-FN과 같은 인기있는 도서관이 등장했습니다. 그러나 시간 API는 기본적으로 모든 문제를 해결하도록 설계되었습니다. Temporal은 여러 시간 영역 및 비 게오 리아 캘린더를 상자 밖으로 지원하며 사용하기 쉬운 API를 제공하여 문자열의 구문 분석 날짜를 더 쉽게 할 수 있습니다. 또한 모든 시간적 물체는 불변이되어 예상치 못한 날짜 변경 오류를 피할 수 있습니다. Tempi가 제공하는 가장 유용한 방법 중 일부를 살펴 보겠습니다.

  • : Nanoseconds에 정확한 DateTime 객체를 반환합니다. 메소드를 사용하여 특정 날짜를 지정할 수 있습니다. Temporal.Now.Instant() from

  • : 날짜와 시간이없는 날짜 객체를 만들 수 있습니다.
  • PlainDate() :

    로 보완하면 시간과 날짜가없는 시간 객체를 만들 수 있습니다.
  • PlainTime() : 와 유사하지만 월과 날짜 만 반환되며 연도 정보는 없습니다. PlainDate()

  • : 마찬가지로, 가 있으며, 이는 연도와 월에만 반환됩니다. PlainMonthDay() PlainDate 계산

    : 다양한 시간 단위 추가 및 빼기와 같은 시간적 물체를 사용하여 많은 계산을 수행 할 수 있습니다. 및
  • 방법을 사용하면 날짜가 발생했거나 발생한 이래로 얼마나 많은 시간이 있었는지 알 수 있습니다.
  • 기타 기능 PlainYearMonth() : 날짜 개체에서 몇 년, 몇 달 및 날짜, 시간, 분, 초, 밀리 초, 마이크로 초 및 시간 객체에서 나노초를 추출 할 수 있습니다. 시간적 날짜 객체는 또한 다양한 정렬 알고리즘을 사용하여 날짜를 정렬하는 데 사용할 수있는 메소드가 있습니다. PlainYearMonth

  • Temporal은 현재 브라우저 제조업체가 구현하는 3 단계 제안이므로 시간이 잘려운 것처럼 보입니다. 여기에서 전체 문서를 볼 수 있습니다. 여기에는 유용한 유스 케이스 레시피도 있습니다. API와 결합하면 매우 영리한 날짜 작업을 수행 할 수 있습니다.
  • 파이프 연산자 2022 년 JS 상태 설문 조사에서 "현재 JavaScript가 가장 부족하다고 생각하는 6 번째는 파이프 라인 운영자입니다. 파이프 라인 운영자 제안을 여기에서 볼 수 있습니다. 파이프 연산자는 기능 언어의 표준 기능으로 한 기능에서 다른 함수로 값을 "파이프"할 수 있으며 이전 기능의 출력은 다음 함수의 입력으로 사용됩니다. 파이프 라인 연산자는 체인 호출의 용이성을 결합하지만 쓰는 모든 기능과 함께 사용할 수 있습니다. 유일한 조건은 한 함수의 출력 유형이 체인의 다음 함수의 입력 유형과 일치하는지 확인해야한다는 것입니다. 파이프 라인 연산자는 이전 함수의 반환 값에서 전달되는 단일 매개 변수 만 허용하는 카레 기능에 가장 적합합니다. 작고 빌딩 블록 기능을 함께 연결하여보다 복잡한 복합 기능을 만들 수 있기 때문에 기능 프로그래밍이 더 쉬워집니다. 또한 일부 응용 프로그램을 쉽게 구현할 수 있습니다. until since 레코드와 튜플 레코드 및 튜플 제안은 불변의 데이터 구조를 JavaScript에 소개하도록 설계되었습니다. 튜플은 배열과 비슷하지만 값 목록 목록과 비슷하지만 깊이는 불변입니다. 이는 튜플의 각 값이 원래 값, 다른 레코드 또는 튜플이어야 함을 의미합니다 (자바 스크립트에서는 변이하기 때문에 배열이나 물체가 아님). 레코드는 객체 모음과 유사하지만 key-value 쌍과 비슷하지만 깊이는 불변입니다.

    튜플과 레코드의 불변성은 연산자를 사용하여 쉽게 비교할 수 있음을 의미합니다.

    정규식 /v 플래그 ===

    > 정규식은 버전 3 이후 JavaScript에 통합되었으며 그 이후로 많은 개선이 이루어졌습니다 (예 : ES2015의 U 플래그를 사용한 유니 코드 지원). V-FLAG 제안은 U-FLAG에서 수행 한 모든 작업을 수행하도록 설계되었지만 추가적인 이점도 추가됩니다. /v 플래그는 또한 둔감 한 경우 U 플래그의 일부 문제를 해결하므로 거의 모든 경우에 더 나은 선택이됩니다. 정규식의 /V 플래그는 2023 년 4 단계에 도달했으며 모든 주요 브라우저에서 구현되었으므로 ES2024 사양의 일부가 될 것으로 예상됩니다.

    데코레이터

    데코레이터 제안은 데코레이터를 사용하여 기본적으로 JavaScript 클래스를 확장하기위한 것입니다. 데코레이터는 이미 파이썬과 같은 많은 객체 지향 언어로 일반적이며 이미 TypeScript에 포함되어 있습니다. 이들은 표준 메타 프로 그램 추상화로 구조를 변경하지 않고 함수 또는 클래스에 추가 기능을 추가 할 수 있습니다. 이 제안은 구문 설탕을 추가하여 수업에

    를 바인딩하지 않고 수업에서 데코레이터를 쉽게 구현할 수 있습니다. 클래스 필드, 클래스 메소드 또는 클래스 액세서와 같은 클래스 요소를 확장하는 명확한 방법을 제공하며, 이는 전체 클래스에도 적용 할 수 있습니다.

    결론

    이러한 모든 기능은 JavaScript에 주요 추가 기능이 될 것이므로 올해 포함 할 수 있는지 기다리십시오!

위 내용은 5 가지 흥미 진진한 새로운 JavaScript 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.