edit docs/let/hoist

This commit is contained in:
ruanyf
2014-05-08 02:02:39 +08:00
parent 135a4486a9
commit 52a950dc3e
2 changed files with 14 additions and 1 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ loadUI.next()
```
上面代码表示,第一次调用loadUI函数时,该函数不会执行,仅返回一个遍历器。下一次对该遍历器调用next方法,则会显示登录界面,并且异步加载数据。再一次使用next方法,则会隐藏登录界面。可以看到,这种写法的好处是所有登录界面的逻辑,都被封装在一个函数,按部就班非常清晰。
上面代码表示,第一次调用loadUI函数时,该函数不会执行,仅返回一个遍历器。下一次对该遍历器调用next方法,则会显示Loading界面,并且异步加载数据。再一次使用next方法,则会隐藏Loading界面。可以看到,这种写法的好处是所有Loading界面的逻辑,都被封装在一个函数,按部就班非常清晰。
注意,yield语句是同步运行,不是异步运行(否则就失去了取代回调函数的设计目的了)。实际操作中,一般让yield语句返回Promises对象。
+13
View File
@@ -48,6 +48,19 @@ a[6](); // 6
```
let不像var那样,会发生“变量提升”现象。
```javascript
function do_something() {
console.log(foo); // ReferenceError
let foo = 2;
}
```
上面代码在声明foo之前,就使用这个变量,结果会抛出一个错误。
注意,let不允许在相同作用域内,重复声明同一个变量。
```javascript