diff --git a/docs/async.md b/docs/async.md index 1948cb5..6ac2423 100644 --- a/docs/async.md +++ b/docs/async.md @@ -605,7 +605,7 @@ function co(gen) { } ``` -接着,co将Generator函数的内部指针对象的next方法,包装成onFulefilled函数。这主要是为了能够捕捉抛出的错误。 +接着,co将Generator函数的内部指针对象的next方法,包装成onFulfilled函数。这主要是为了能够捕捉抛出的错误。 ```javascript function co(gen) { diff --git a/docs/generator.md b/docs/generator.md index dba09b9..a954ccc 100644 --- a/docs/generator.md +++ b/docs/generator.md @@ -66,7 +66,7 @@ function* foo(x, y) { ··· } function*foo(x, y) { ··· } ``` -由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在`function`关键字后面。本书也采用这种写法/。 +由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在`function`关键字后面。本书也采用这种写法。 ### yield语句 diff --git a/docs/let.md b/docs/let.md index c4c8fd0..859a343 100644 --- a/docs/let.md +++ b/docs/let.md @@ -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`。 ### 暂时性死区