>  기사  >  웹 프론트엔드  >  JavaScript ES6 구문의 반복자 및 for...of 루프에 대한 자세한 예

JavaScript ES6 구문의 반복자 및 for...of 루프에 대한 자세한 예

黄舟
黄舟원래의
2017-10-25 09:33:251507검색

Iterator

Iterator는 그러한 메커니즘입니다. 다양한 데이터 구조에 대한 통합 액세스 메커니즘을 제공하는 인터페이스입니다. 모든 데이터 구조가 Iterator 인터페이스를 배포하는 한 순회 작업을 완료할 수 있습니다(즉, 데이터 구조의 모든 멤버를 순서대로 처리).

기능:

  • 다양한 데이터 구조에 대한 통합되고 간단한 액세스 인터페이스를 제공합니다.

  • 데이터 구조의 멤버를 특정 순서로 정렬할 수 있습니다.

  • ES6은 새로운 순회를 생성합니다. 명령 for...of 루프이며 Iterator 인터페이스는 주로 for...of 소비에 사용됩니다for...of循环,Iterator接口主要供for...of消费

Iterator的遍历过程:

(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。

(2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。

(3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。

(4)不断调用指针对象的next方法,直到它指向数据结构的结束位置。

在ES6中,有三类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set和Map结构。

可以覆盖原生的Symbol.iterator

Iterator 순회 프로세스:

(1) 생성 현재 데이터 구조의 시작 부분을 가리키는 포인터 개체입니다. 즉, traverser 객체는 본질적으로 포인터 객체입니다.

(2) 포인터 객체의 next 메서드를 처음 호출하면 포인터가 데이터 구조의 첫 번째 멤버를 가리킬 수 있습니다.

(3) 포인터 객체의 next 메서드가 두 번째로 호출되면 포인터는 데이터 구조의 두 번째 멤버를 가리킵니다. 🎜🎜(4) 데이터 구조의 끝을 가리킬 때까지 포인터 개체의 next 메서드를 계속 호출합니다. 🎜🎜ES6에는 기본적으로 Iterator 인터페이스를 갖는 세 가지 유형의 데이터 구조, 즉 배열, 배열과 유사한 특정 객체, Set 및 Map 구조가 있습니다. 🎜🎜기본 Symbol.iterator 메서드를 재정의하여 반복자의 동작을 수정할 수 있습니다. 🎜🎜for...of🎜🎜for...of 루프는 배열, Set 및 Map 구조, 특정 배열과 유사한 객체(예: 인수 객체, DOM NodeList 객체), 아래 언급된 Generator 객체 및 문자열에서 사용할 수 있습니다. . 🎜🎜🎜🎜rreee

위 내용은 JavaScript ES6 구문의 반복자 및 for...of 루프에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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