> 웹 프론트엔드 > JS 튜토리얼 > JavaScript ES의 놀라운 새로운 기능(4)

JavaScript ES의 놀라운 새로운 기능(4)

Mary-Kate Olsen
풀어 주다: 2024-11-02 18:20:02
원래의
1013명이 탐색했습니다.

Incredible New Features in JavaScript ES(4)

최신 ECMAScript 버전인 ES15에는 Javascript 개발자에게 뛰어난 개발자 경험을 제공하는 몇 가지 새로운 기능이 도입되었습니다. 이러한 향상된 기능은 업데이트된 Javascript 구문 및 데이터 처리부터 보안, 성능 및 개발자 생산성을 위한 도구의 향상에 이르기까지 다양한 영역에 걸쳐 있습니다.

1. 어레이 그룹화

ES15에서 가장 흥미롭고 개인적으로 가장 좋아하는 기능 중 하나는 Object.groupBy() 메서드입니다.
이 방법은 특정 기준에 따라 배열의 요소를 그룹화하는 방법을 단순화합니다. 이를 통해 데이터 조작이 더욱 효율적이고 오류 발생 가능성이 줄어듭니다.

예:

const cities = [
  { name: 'Melbourne', country: 'Australia' },  
  { name: 'Auckland', country: 'New Zealand' },
  { name: 'Sydney', country: 'Australia' },
  { name: 'Brisbane', country: 'Australia' },
  { name: 'Wellington', country: 'New Zealand' }
];

const groupedByCountry = Object.groupBy(cities, fruit => fruit.country);
console.log(groupedByCountry);

// Output:
// {
//   "Australia": [
//       { "name": "Melbourne", "country": "Australia" },
//       { "name": "Sydney", "country": "Australia" },
//       { "name": "Brisbane", "country": "Australia" }
//   ],
//   "New Zealand": [
//       { "name": "Auckland", "country": "New Zealand" },
//       { "name": "Wellington", "country": "New Zealand" }
//   ]
// }
로그인 후 복사
로그인 후 복사

이 기능을 사용하면 배열 그룹화에 전통적으로 사용하는 사용자 정의 함수나 타사 라이브러리의 필요성을 줄일 수 있습니다.

또한 이 기능을 사용하면 의도를 직접 표현하여 코드를 더 이해하기 쉽고 유지 관리하기 쉽게 만들 수 있습니다

2. 파이프라인 연산자(|>)

때로는 연결 프로세스로 여러 기능을 사용해야 하는 경우가 있습니다. 이러한 종류의 시나리오에서는 파이프라인 연산자(|>)를 사용하여 연결 프로세스를 단순화할 수 있습니다.

예:

const double = (x) => x * 2;
const increment = (x) => x + 1;
const square = (x) => x * x;

const result = 5 |> double |> increment |> square;

// Output: 121
로그인 후 복사
로그인 후 복사

위의 전통적인 방식은 이렇습니다

const double = (x) => x * 2;
const increment = (x) => x + 1;
const square = (x) => x * x;

const result = square(increment(double(5)));
console.log(result);

// Output: 121
로그인 후 복사

파이프라인 연산자를 사용하면 보다 기능적인 프로그래밍 스타일을 사용할 수 있습니다. 이를 통해 깊게 중첩된 함수 호출의 복잡성을 제거하여 코드를 더 읽기 쉽게 만들 수 있습니다.

3. 메소드 체이닝 연산자(?.())

ES15는 새로운 메소드 체이닝 연산자를 도입하여 선택적 체이닝을 확장합니다. 이 메소드 체이닝 연산자는 깊게 중첩된 객체의 메소드 호출에 안전성을 추가합니다.

예:

const data = {
  user: {
    getName: () => 'Tim'
  }
};

console.log(data.user?.getName?.());  // Output: 'Alice'
console.log(data.user?.getAge?.());  // Output: undefined
로그인 후 복사

메서드 연결 연산자(?.())를 사용하면 잠재적으로 null이거나 정의되지 않은 개체에 대해 메서드를 안전하게 호출할 수 있습니다. 이렇게 하면 메소드 호출로 인해 발생하는 런타임 오류 위험이 줄어듭니다.

4. 메소드 개선 사항 설정

ES15에서는 union, intersection, differencesymmetricDifference와 같은 새로운 메서드를 포함하여 Set 개체에 여러 가지 향상된 기능이 도입되었습니다. 이러한 방법은 일반적인 집합 작업을 단순화합니다.

const setA = new Set([1, 2, 3]);
const setB = new Set([3, 4, 5]);

const unionSet = setA.union(setB);
const differenceSet = setA.difference(setB);
const intersectionSet = setA.intersection(setB);
const symmetricDifferenceSet = setA.symmetricDifference(setB);

console.log(unionSet); // Output: {1, 2, 3, 4, 5}
console.log(differenceSet); // Output: {1, 2}
console.log(intersectionSet); // Output: {3}
console.log(symmetricDifferenceSet); // Output: {1, 2, 4, 5}
로그인 후 복사
  • 노조
    Set 인스턴스의 Union() 메서드는 세트를 가져와서 이 세트와 주어진 세트 중 하나 또는 둘 다에 있는 요소를 포함하는 새 세트를 반환합니다.

  • 차이
    Set 인스턴스의 Difference() 메서드는 세트를 가져와 이 세트에는 있지만 지정된 세트에는 포함되지 않은 요소를 포함하는 새 세트를 반환합니다.

  • 교차로
    Set 인스턴스의 Intersection() 메서드는 세트를 가져와서 이 세트와 주어진 세트 모두의 요소를 포함하는 새 세트를 반환합니다.

  • 대칭차이
    Set 인스턴스의 symmetricDifference() 메서드는 세트를 가져와 이 세트나 주어진 세트 중 하나에만 있지만 둘 다에는 없는 요소를 포함하는 새 세트를 반환합니다.

5. 향상된 JSON 모듈

이전 ECMAScript 버전에서는 개발자가 번들러나 로더를 사용하여 JSON 파일을 가져왔습니다. ES15는 이제 동적 가져오기 및 스키마 유효성 검사를 지원하므로 구조화된 데이터 작업이 더 쉬워지고 가져온 데이터가 예상 형식을 준수하는지 확인할 수 있습니다.

이제 JavaScript 모듈을 가져오는 것처럼 JSON 데이터를 직접 가져올 수 있습니다.

예:

const cities = [
  { name: 'Melbourne', country: 'Australia' },  
  { name: 'Auckland', country: 'New Zealand' },
  { name: 'Sydney', country: 'Australia' },
  { name: 'Brisbane', country: 'Australia' },
  { name: 'Wellington', country: 'New Zealand' }
];

const groupedByCountry = Object.groupBy(cities, fruit => fruit.country);
console.log(groupedByCountry);

// Output:
// {
//   "Australia": [
//       { "name": "Melbourne", "country": "Australia" },
//       { "name": "Sydney", "country": "Australia" },
//       { "name": "Brisbane", "country": "Australia" }
//   ],
//   "New Zealand": [
//       { "name": "Auckland", "country": "New Zealand" },
//       { "name": "Wellington", "country": "New Zealand" }
//   ]
// }
로그인 후 복사
로그인 후 복사
const double = (x) => x * 2;
const increment = (x) => x + 1;
const square = (x) => x * x;

const result = 5 |> double |> increment |> square;

// Output: 121
로그인 후 복사
로그인 후 복사

그러나 이 변경으로 인해 JSON을 가져오는 기존의 비표준 방식을 사용하거나 특정 빌드 도구가 이전 동작으로 구성된 경우 코드가 손상될 수 있습니다.

위 내용은 JavaScript ES의 놀라운 새로운 기능(4)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿