ES6字符串的 Iterator 接口特性有哪些?
Posted 水香木鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6字符串的 Iterator 接口特性有哪些?相关的知识,希望对你有一定的参考价值。
字符串
是一个类似数组的对象,也原生具有 Iterator 接口。
var someString = "hi";
typeof someString[Symbol.iterator]
// "function"
var iterator = someString[Symbol.iterator]();
iterator.next() // value: "h", done: false
iterator.next() // value: "i", done: false
iterator.next() // value: undefined, done: true
上面代码中,调用Symbol.iterator方法
返回一个遍历器对象,在这个遍历器上可以调用 next 方法
,实现对于字符串的遍历
。
可以覆盖原生的
Symbol.iterator方法
,达到修改遍历器行为的目的。
var str = new String("hi");
[...str] // ["h", "i"]
str[Symbol.iterator] = function()
return
next: function()
if (this._first)
this._first = false;
return value: "bye", done: false ;
else
return done: true ;
,
_first: true
;
;
[...str] // ["bye"]
str // "hi"
上面代码中,字符串str
的Symbol.iterator方法
被修改了,所以扩展运算符(...)返回的值变成了bye,而字符串本身还是hi。
以上是关于ES6字符串的 Iterator 接口特性有哪些?的主要内容,如果未能解决你的问题,请参考以下文章