diff --git a/docs/generator.md b/docs/generator.md index 52cfd50..60f87bd 100644 --- a/docs/generator.md +++ b/docs/generator.md @@ -105,7 +105,7 @@ loadUI.next() ``` -上面代码表示,第一次调用loadUI函数时,该函数不会执行,仅返回一个遍历器。下一次对该遍历器调用next方法,则会显示登录界面,并且异步加载数据。再一次使用next方法,则会隐藏登录界面。可以看到,这种写法的好处是所有登录界面的逻辑,都被封装在一个函数,按部就班非常清晰。 +上面代码表示,第一次调用loadUI函数时,该函数不会执行,仅返回一个遍历器。下一次对该遍历器调用next方法,则会显示Loading界面,并且异步加载数据。再一次使用next方法,则会隐藏Loading界面。可以看到,这种写法的好处是所有Loading界面的逻辑,都被封装在一个函数,按部就班非常清晰。 注意,yield语句是同步运行,不是异步运行(否则就失去了取代回调函数的设计目的了)。实际操作中,一般让yield语句返回Promises对象。 diff --git a/docs/let.md b/docs/let.md index ad0f250..f37978c 100644 --- a/docs/let.md +++ b/docs/let.md @@ -48,6 +48,19 @@ a[6](); // 6 ``` +let不像var那样,会发生“变量提升”现象。 + +```javascript + +function do_something() { + console.log(foo); // ReferenceError + let foo = 2; +} + +``` + +上面代码在声明foo之前,就使用这个变量,结果会抛出一个错误。 + 注意,let不允许在相同作用域内,重复声明同一个变量。 ```javascript