📅  最后修改于: 2023-12-03 15:16:11.258000             🧑  作者: Mango
在ECMAScript 6(ES6)中,字符串成为了可迭代对象,这意味着可以对字符串使用 Iterator 接口。字符串的 @@iterator
方法是一个迭代器函数,可以将字符串分解为一个个的 UTF-16 编码单元,提供了一种新的遍历字符串的方式。
@@iterator
方法可以使用 for...of 循环进行遍历:
const str = "hello world";
for(let p of str) {
console.log(p);
}
// 输出如下:
// "h"
// "e"
// "l"
// "l"
// "o"
// " "
// "w"
// "o"
// "r"
// "l"
// "d"
也可以通过调用 Symbol.iterator
方法获取该方法:
const str = "hello world";
const iterator = str[Symbol.iterator]();
console.log(iterator.next());
console.log(iterator.next());
// 输出如下:
// { value: 'h', done: false }
// { value: 'e', done: false }
next
方法。@@iterator
方法遍历字符串,则会分别返回两个编码单元。@@iterator
方法提供了一种新的遍历字符串的方式,可以将字符串分解为一个个的 UTF-16 编码单元进行迭代,可以使用 for...of 循环或调用 Symbol.iterator
方法获取迭代器对象进行迭代。需要注意的是,某些字符会使用两个编码单元表示,如字符 "𠮷",迭代时需要特别注意。