File tree Expand file tree Collapse file tree 3 files changed +8
-4
lines changed Expand file tree Collapse file tree 3 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -605,7 +605,7 @@ function co(gen) {
605
605
}
606
606
```
607
607
608
- 接着,co将Generator函数的内部指针对象的next方法,包装成onFulefilled函数 。这主要是为了能够捕捉抛出的错误。
608
+ 接着,co将Generator函数的内部指针对象的next方法,包装成onFulfilled函数 。这主要是为了能够捕捉抛出的错误。
609
609
610
610
``` javascript
611
611
function co (gen ) {
Original file line number Diff line number Diff line change @@ -66,7 +66,7 @@ function* foo(x, y) { ··· }
66
66
function * foo (x , y ) { ··· }
67
67
```
68
68
69
- 由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在` function ` 关键字后面。本书也采用这种写法/ 。
69
+ 由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在` function ` 关键字后面。本书也采用这种写法。
70
70
71
71
### yield语句
72
72
Original file line number Diff line number Diff line change @@ -41,6 +41,8 @@ for (var i = 0; i < 10; i++) {
41
41
a[6 ](); // 10
42
42
```
43
43
44
+ 上面代码中,变量` i ` 是` var ` 声明的,在全局范围内都有效。所以每一次循环,新的` i ` 值都会覆盖旧值,导致最后输出的是最后一轮的` i ` 的值。
45
+
44
46
如果使用` let ` ,声明的变量仅在块级作用域内有效,最后输出的是6。
45
47
46
48
``` javascript
@@ -53,9 +55,11 @@ for (let i = 0; i < 10; i++) {
53
55
a[6 ](); // 6
54
56
```
55
57
58
+ 上面代码中,变量` i ` 是` let ` 声明的,当前的` i ` 只在本轮循环有效,所以每一次循环的` i ` 其实都是一个新的变量,所以最后输出的是6。
59
+
56
60
### 不存在变量提升
57
61
58
- ` let ` 不像` var ` 那样,会发生“变量提升”现象。
62
+ ` let ` 不像` var ` 那样,会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。
59
63
60
64
``` javascript
61
65
console .log (foo); // ReferenceError
@@ -71,7 +75,7 @@ typeof x; // ReferenceError
71
75
let x;
72
76
```
73
77
74
- 上面代码中,由于块级作用域内 ` typeof ` 运行时,` x ` 还没有值 ,所以会抛出一个` ReferenceError ` 。
78
+ 上面代码中,由于 ` typeof ` 运行时,` x ` 还没有声明 ,所以会抛出一个` ReferenceError ` 。
75
79
76
80
### 暂时性死区
77
81
You can’t perform that action at this time.
0 commit comments