이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 7794|회답: 0

[JavaScript] es6 확장 연산자 세 개의 점 (...) )

[링크 복사]
게시됨 2020. 6. 19. 오후 12:31:11 | | |
의미

확장 연산자(spread)는 세 개의 점(...)입니다. )。 이것은 쉼표 매개변수의 역함수와 같아서, 배열을 쉼표로 구분된 매개변수 시퀀스로 바꾸는 것입니다.



이 연산자는 주로 함수 호출에 사용됩니다.



위 코드에서 array.push(...) 항목) 그리고 추가(...) 숫자들), 두 경우 모두 함수 호출이며, 확장 연산자를 사용합니다. 이 연산자는 배열을 매개변수 시퀀스로 변환합니다.
확장 연산자는 매우 유연한 정상 함수 매개변수와 함께 사용할 수 있습니다.



대체 배열에 적용 방법

확장 연산자가 배열을 확장할 수 있기 때문에, 배열을 함수의 인자로 바꾸기 위해 apply 메서드를 사용할 필요가 없습니다.



다음은 적용 메서드를 대체하는 확장 연산자의 실용적인 예시로, 배열의 가장 큰 요소 작성Math.max 단순화하기 위해 적용한 방법입니다.



위 코드에 따르면, JavaScript는 배열의 가장 큰 요소를 찾는 함수를 제공하지 않기 때문에, 배열을 매개변수 시퀀스로 변환하는 함수만 적용할 수 있고Math.max, 그 다음 최대 값을 찾을 수 있습니다. 확장 연산자를 사용하면 Math.max 직접 사용할 수 있습니다.
또 다른 예로는 푸시 함수를 통해 다른 배열의 꼬리에 배열을 추가하는 방법이 있습니다.



위 코드의 ES5 작성 메서드에서는 push 메서드의 매개변수가 배열이 될 수 없으므로, apply 메서드를 통해 push 메서드를 유연하게 사용해야 합니다. 확장 연산자를 사용하면 배열을 푸시 메서드로 직접 전달할 수 있습니다.
또 다른 예를 들자.



연산자 적용 범위를 확장하기

(1) 배열 병합

확장 연산자는 숫자 조합을 새롭게 표현하는 방법을 제공합니다.



(2) 해체 할당과 결합

확장 연산자는 분해된 할당과 결합하여 배열을 생성할 수 있습니다.



배열 할당에 확장 연산자를 사용할 경우, 매개변수의 마지막 자리에만 배치할 수 있으며, 그렇지 않으면 오류가 보고됩니다.



(3) 함수의 반환값

자바스크립트 함수는 한 개의 값만 반환할 수 있으며, 여러 값을 반환해야 할 경우 배열이나 객체만 반환할 수 있습니다. 확장 연산자는 이 문제를 해결하기 위한 우회 방법을 제공합니다.



위 코드는 데이터베이스에서 데이터 한 줄을 가져와 연산자를 확장한 후 직접 생성자 날짜로 전달합니다.

(4) 끈

확장 연산자는 문자열을 실제 배열로 변환할 수도 있습니다.



위의 글씨는 32비트 유니코드 문자를 올바르게 인식할 수 있다는 중요한 장점이 있습니다.



위 코드를 작성하는 첫 번째 방법은, 자바스크립트가 32비트 유니코드 문자를 2문자로 인식하며, 확장 연산자에 문제가 없습니다. 따라서 문자열 길이를 올바르게 반환하는 함수는 다음과 같이 쓸 수 있습니다:



이 문제는 32비트 유니코드 문자를 조작하는 모든 함수에서 발생합니다. 따라서 확장 연산자로 모두 다시 작성하는 것이 가장 좋습니다.



위 코드에서 확장 연산자를 사용하지 않으면 문자열 역전 연산이 잘못됩니다.

(5) 이터레이터 인터페이스를 구현하는 객체들

Iterator 인터페이스 내 모든 객체는 확장 연산자를 통해 진정한 배열로 변환할 수 있습니다.



위 코드에서 querySelectorAll 메서드는 nodeList 객체를 반환합니다. 배열이 아니라 배열과 유사한 객체입니다. 이 경우 확장 연산자는 NodeList 객체가 Iterator 인터페이스를 구현하기 때문에 이를 실제 배열로 변환할 수 있습니다.
반복자 인터페이스가 배포되지 않은 배열형 객체들은 확장 연산자가 실제 배열로 변환할 수 없습니다.



위 코드에서 arrayLike는 배열과 유사한 객체이지만, Iterator 인터페이스를 배포하지 않으면 확장 운영자가 오류를 보고합니다. 이 경우 Array.from 메서드를 사용해 arrayLike를 실제 배열로 변환할 수 있습니다.

(6) 사상 및 집합 구조, 생성자 함수

확장 연산자는 내부적으로 데이터 구조의 Iterator 인터페이스를 호출하므로, Iterator 인터페이스를 가진 모든 객체는 Map 구조와 같은 확장 연산자를 사용할 수 있습니다.



생성기 함수가 실행되면 트래버서 객체를 반환하므로 확장 연산자도 사용할 수 있습니다.



위 코드에서 go는 생성기 함수이며, 실행 후 트래버서 객체를 반환하고, 이 트래버설 객체에 확장 연산자를 실행하면 내부 트래버스에서 얻은 값들을 배열로 변환합니다.
이터레이터 인터페이스가 없는 객체에 확장 연산자를 사용하면 오류가 보고됩니다.





이전의:Vue+ElementUI 구현
다음:Angular 프로젝트 릴리스 이슈
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com