>일반적인 문제 >es6의 새로운 기능은 무엇입니까?

es6의 새로운 기능은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2021-02-22 11:59:27106136검색

es6 새로운 기능: 1. 개체에 속성 추가 3. 개체의 속성 삭제 5. 개체 속성의 위치 조정 ; 8. 조건부 속성.

es6의 새로운 기능은 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.

es6 새로운 기능:

1. 객체에 속성 추가

다음 코드에 표시된 대로 객체를 복제하고 (얕은) 복제된 객체에 추가 속성을 추가합니다.

const user = { id: 10, name: 'Tom'}const userWithPass = { ...user, password: 'Password!' }user //=> { id: 10, name: 'Tom' }userWithPass //=> { id: 10, name: 'Tom', password: 'Password!' }

이 예에서는 사용자는 userWithPass로 복제되고 userWithPass 객체는 비밀번호 속성을 추가하며 코드는 간단하고 효율적입니다.

2. 객체 병합

작동 방법을 설명하는 예를 제공합니다

const part1 = { id: 10, name: 'Howard Moon' }const part2 = { id: 11, password: 'Password!' }const user1 = { ...part1, ...part2 }//=> { id: 10, name: 'Howard Moon', password: 'Password!' }

이 예에서는 part1과 part2를 하나의 객체 user1로 병합합니다. 다음 방법으로 객체를 병합할 수도 있습니다.

const partial = { id: 100, name: 'Howard Moon' }const user = { ...partial, id: 100, password: 'Password!' }user //=> { id: 100, name: 'Howard Moon', password: 'Password!' }

3 . 객체의 속성을 삭제합니다

REST 연산자와 함께 소멸을 사용하여 속성을 삭제할 수 있습니다.

onst noPassword = ({ password, ...rest }) => restconst user = { id: 100, name: 'Howard Moon', password: 'Password!'}noPassword(user) //=> { id: 100, name: 'Howard moon' }

4. 동적으로 속성 삭제

객체 속성 이름을 사용한 다음, RemoveProperty에서 속성 이름을 전달하여 속성을 삭제할 수 있습니다

const user1 = { id: 100, name: 'Howard Moon', password: 'Password!'}const removeProperty = prop => ({ [prop]: _, ...rest }) => rest// ---- ------//  /// dynamic destructuringconst removePassword = removeProperty('password')const removeId = removeProperty('id')removePassword(user1) //=> { id: 100, name: 'Howard Moon' }removeId(user1) //=> { name: 'Howard Moon', password: 'Password!' }

5. 객체 속성의 위치를 ​​조정합니다

때때로 속성이 변경됩니다. 우리가 필요한 순서를 충족하지 않습니다. 몇 가지 트릭을 사용하여 속성을 목록의 맨 위로 올리거나 맨 아래로 이동할 수 있습니다. 예:

const user3 = { password: 'Password!', name: 'Naboo', id: 300}const organize = object => ({ id: undefined, ...object })// -------------// /// move id to the first propertyorganize(user3)//=> { id: 300, password: 'Password!', name: 'Naboo' }

이 예에서는 ID가 첫 번째 위치로 이동되었습니다. 다음 예에서는 비밀번호 속성을 다음 위치로 이동합니다.

const user3 = { password: 'Password!', name: 'Naboo', id: 300}const organize = ({ password, ...object }) => ({ ...object, password })// --------// /// move password to last propertyorganize(user3)//=> { name: 'Naboo', id: 300, password: 'Password!' }

6. 기본 속성

const user2 = { id: 200, name: 'Vince Noir'}const user4 = { id: 400, name: 'Bollo', quotes: ["I've got a bad feeling about this..."]}const setDefaults = ({ quotes = [], ...object}) => ({ ...object, quotes })setDefaults(user2)//=> { id: 200, name: 'Vince Noir', quotes: [] }setDefaults(user4)//=> {//=> id: 400,//=> name: 'Bollo',//=> quotes: ["I've got a bad feeling about this..."]//=> }

기본 속성 값은 원본 개체에 포함되지 않은 경우에만 설정된다는 점은 주목할 가치가 있습니다. 이 예제의 결과를 보면 알 수 있습니다. 기본값을 설정합니다. 또는 다음과 같이 작성해야 할 수도 있습니다.

const setDefaults = ({ ...object}) => ({ quotes: [], ...object })

7. 개체의 속성 이름을 바꿉니다.

예를 들어 일부 시나리오에서는 개체 속성의 대소문자를 변경해야 할 수 있으며 다음에서 이름을 바꿀 수 있습니다. way

const renamed = ({ ID, ...object }) => ({ id: ID, ...object })const user = {ID: 500,name: "Bob Fossil"}renamed(user) //=> { id: 500, name: 'Bob Fossil' }//将大写ID改成了小写的

8. 조건부 속성

이름에서 알 수 있듯이 이는 개체의 속성이 조건을 통해 제어된다는 것을 보여줍니다.

const user = { id: 100, name: 'Howard Moon' }const password = 'Password!'const userWithPassword = { ...user, id: 100, ...(password && { password })}userWithPassword //=> { id: 100, name: 'Howard Moon', password: 'Password!' }

관련 동영상 추천: PHP 동영상 튜토리얼

위 내용은 es6의 새로운 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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