mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-25 02:54:29 +00:00
edit let
This commit is contained in:
parent
73e5815b97
commit
6fae5b1d8b
@ -605,7 +605,7 @@ function co(gen) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
接着,co将Generator函数的内部指针对象的next方法,包装成onFulefilled函数。这主要是为了能够捕捉抛出的错误。
|
接着,co将Generator函数的内部指针对象的next方法,包装成onFulfilled函数。这主要是为了能够捕捉抛出的错误。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
function co(gen) {
|
function co(gen) {
|
||||||
|
@ -66,7 +66,7 @@ function* foo(x, y) { ··· }
|
|||||||
function*foo(x, y) { ··· }
|
function*foo(x, y) { ··· }
|
||||||
```
|
```
|
||||||
|
|
||||||
由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在`function`关键字后面。本书也采用这种写法/。
|
由于Generator函数仍然是普通函数,所以一般的写法是上面的第三种,即星号紧跟在`function`关键字后面。本书也采用这种写法。
|
||||||
|
|
||||||
### yield语句
|
### yield语句
|
||||||
|
|
||||||
|
@ -41,6 +41,8 @@ for (var i = 0; i < 10; i++) {
|
|||||||
a[6](); // 10
|
a[6](); // 10
|
||||||
```
|
```
|
||||||
|
|
||||||
|
上面代码中,变量`i`是`var`声明的,在全局范围内都有效。所以每一次循环,新的`i`值都会覆盖旧值,导致最后输出的是最后一轮的`i`的值。
|
||||||
|
|
||||||
如果使用`let`,声明的变量仅在块级作用域内有效,最后输出的是6。
|
如果使用`let`,声明的变量仅在块级作用域内有效,最后输出的是6。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -53,9 +55,11 @@ for (let i = 0; i < 10; i++) {
|
|||||||
a[6](); // 6
|
a[6](); // 6
|
||||||
```
|
```
|
||||||
|
|
||||||
|
上面代码中,变量`i`是`let`声明的,当前的`i`只在本轮循环有效,所以每一次循环的`i`其实都是一个新的变量,所以最后输出的是6。
|
||||||
|
|
||||||
### 不存在变量提升
|
### 不存在变量提升
|
||||||
|
|
||||||
`let`不像`var`那样,会发生“变量提升”现象。
|
`let`不像`var`那样,会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
console.log(foo); // ReferenceError
|
console.log(foo); // ReferenceError
|
||||||
@ -71,7 +75,7 @@ typeof x; // ReferenceError
|
|||||||
let x;
|
let x;
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,由于块级作用域内`typeof`运行时,`x`还没有值,所以会抛出一个`ReferenceError`。
|
上面代码中,由于`typeof`运行时,`x`还没有声明,所以会抛出一个`ReferenceError`。
|
||||||
|
|
||||||
### 暂时性死区
|
### 暂时性死区
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user