1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

fix(string): fix typo

This commit is contained in:
ruanyf 2016-09-14 23:40:41 +08:00
parent 2bc8eaf207
commit 102bf25570
2 changed files with 7 additions and 7 deletions

View File

@ -1301,7 +1301,7 @@ function scheduler(task) {
}
```
注意,上面这种做法,只适合同步操作,即所有的`task`都必须是同步的,不能有异步操作。因为这里的代码一得到返回值,就继续往下执行,没有判断异步操作何时完成。如果要控制异步的操作流程,详见下一节
注意,上面这种做法,只适合同步操作,即所有的`task`都必须是同步的,不能有异步操作。因为这里的代码一得到返回值,就继续往下执行,没有判断异步操作何时完成。如果要控制异步的操作流程,详见后面的《异步操作》一章
下面,利用`for...of`循环会自动依次执行`yield`命令的特性,提供一种更一般的控制流管理的方法。
@ -1331,7 +1331,7 @@ function *iterateJobs(jobs){
}
```
上面代码中,数组`jobs`封装了一个项目的多个任务Generator函数`iterateJobs`则是依次为这些任务加上`yield *`命令`yield *`命令的介绍详见后文)
上面代码中,数组`jobs`封装了一个项目的多个任务Generator函数`iterateJobs`则是依次为这些任务加上`yield *`命令。
最后,就可以用`for...of`循环一次性依次执行所有任务的所有步骤。
@ -1341,7 +1341,7 @@ for (var step of iterateJobs(jobs)){
}
```
再次提醒,上面的做法只能用于所有步骤都是同步操作的情况,不能有异步操作的步骤。如果想要依次执行异步的步骤,必须使用一章介绍的方法。
再次提醒,上面的做法只能用于所有步骤都是同步操作的情况,不能有异步操作的步骤。如果想要依次执行异步的步骤,必须使用后面的《异步操作》一章介绍的方法。
`for...of`的本质是一个`while`循环,所以上面的代码实质上执行的是下面的逻辑。
@ -1356,9 +1356,9 @@ while (!res.done){
}
```
### 3部署iterator接口
### 3部署Iterator接口
利用Generator函数可以在任意对象上部署iterator接口。
利用Generator函数可以在任意对象上部署Iterator接口。
```javascript
function* iterEntries(obj) {
@ -1379,7 +1379,7 @@ for (let [key, value] of iterEntries(myObj)) {
// bar 7
```
上述代码中,myObj是一个普通对象通过iterEntries函数就有了iterator接口。也就是说可以在任意对象上部署next方法。
上述代码中,`myObj`是一个普通对象,通过`iterEntries`函数就有了Iterator接口。也就是说可以在任意对象上部署`next`方法。
下面是一个对数组部署Iterator接口的例子尽管数组原生具有这个接口。

View File

@ -191,7 +191,7 @@ ES5对字符串对象提供`charAt`方法,返回字符串给定位置的字符
## normalize()
许多欧洲语言有语调符号和重音符。为了表示它们Unicode提供了两种方法。一种是直接提供带重音符号的字符比如`Ǒ`\u01D1。另一种是提供合成符号combining character即原字符与重音符号的合成两个字符合成一个字符比如`O`\u004F`ˇ`\u030C合成`Ǒ`\u004F\u030C
许多欧洲语言有语调符号和重音符。为了表示它们Unicode提供了两种方法。一种是直接提供带重音符号的字符比如`Ǒ`\u01D1。另一种是提供合成符号combining character即原字符与重音符号的合成两个字符合成一个字符比如`O`\u004F`ˇ`\u030C合成`Ǒ`\u004F\u030C
这两种表示方法在视觉和语义上都等价但是JavaScript不能识别。