1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00
This commit is contained in:
ruanyf 2015-11-04 21:16:17 +08:00
parent 73e5815b97
commit 6fae5b1d8b
3 changed files with 8 additions and 4 deletions

View File

@ -605,7 +605,7 @@ function co(gen) {
}
```
接着co将Generator函数的内部指针对象的next方法包装成onFulefilled函数。这主要是为了能够捕捉抛出的错误。
接着co将Generator函数的内部指针对象的next方法包装成onFulfilled函数。这主要是为了能够捕捉抛出的错误。
```javascript
function co(gen) {

View File

@ -66,7 +66,7 @@ function* foo(x, y) { ··· }
function*foo(x, y) { ··· }
```
由于Generator函数仍然是普通函数所以一般的写法是上面的第三种即星号紧跟在`function`关键字后面。本书也采用这种写法/
由于Generator函数仍然是普通函数所以一般的写法是上面的第三种即星号紧跟在`function`关键字后面。本书也采用这种写法。
### yield语句

View File

@ -41,6 +41,8 @@ for (var i = 0; i < 10; i++) {
a[6](); // 10
```
上面代码中,变量`i``var`声明的,在全局范围内都有效。所以每一次循环,新的`i`值都会覆盖旧值,导致最后输出的是最后一轮的`i`的值。
如果使用`let`声明的变量仅在块级作用域内有效最后输出的是6。
```javascript
@ -53,9 +55,11 @@ for (let i = 0; i < 10; i++) {
a[6](); // 6
```
上面代码中,变量`i``let`声明的,当前的`i`只在本轮循环有效,所以每一次循环的`i`其实都是一个新的变量所以最后输出的是6。
### 不存在变量提升
`let`不像`var`那样,会发生“变量提升”现象。
`let`不像`var`那样,会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。
```javascript
console.log(foo); // ReferenceError
@ -71,7 +75,7 @@ typeof x; // ReferenceError
let x;
```
上面代码中,由于块级作用域内`typeof`运行时,`x`还没有值,所以会抛出一个`ReferenceError`
上面代码中,由于`typeof`运行时,`x`还没有声明,所以会抛出一个`ReferenceError`
### 暂时性死区