Skip to content

Latest commit

 

History

History
60 lines (41 loc) · 1.44 KB

File metadata and controls

60 lines (41 loc) · 1.44 KB

string.@@iterator

The [@@interator]() method는 String value의 code point를 반복하는 new Iterator object를 반환하고 각 code point를 string value로 반환한다. 🧐

const str = "뉸뉴냔냐냐냐 코로나로 유튜브에 오페라의 유령 무료로 풀림";

let iterator = str[Symbol.iterator](); // StringIterator {}
let theChar = iterator.next(); // {value: "뉸", done: false}

while(!theChar.done && theChar.value !== ' ') {
  console.log(theChar.value);
  theChar = iterator.next();
	// expected output: "뉸"
	// "뉴"
	// "냔"
	// "냐"
}

next() 메소드는 value로 done(boolean)과 value를 가진다.

Syntax

str[Symbol.iterator]

Return value

new Iterator Object

Examples

Using [@@iterator]()

surrogate pair(UTF-16 코드 두개를 사용하여 하나의 글자를 나타낸 것)때도 안깨지는 것을 확인 할 수 있다.

const str = 'A\uD835\uDC68';

let strIter = str[Symbol.iterator]();

console.log(strIter.next().value); // "A"
console.log(strIter.next().value); // 𝑨 (\uD835\uDC68)

Using [@@iterator]() with for..of

for..of 구문은 컬렉션 전용 [Symbol.iterator]속성이 있는 모든 컬렉션 요소에 대해 이 방식으로 반복한다.

let iterable = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A';

for (let i of iterable) {
  console.log(i); //logs A, 𝑨, B, 𝑩, C, 𝑪
}

Browser compatibillity: IE, Opera, Safari에서 No