Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
修改let.md中不够具体的文字表述,修改示例代码使其更精确
  • Loading branch information
sikaco authored Mar 8, 2017
commit 57fe8c62fc3c282df0dfb61156edeccc511a4815
6 changes: 3 additions & 3 deletions docs/let.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ for (var i = 0; i < 10; i++) {
a[6](); // 10
```

上面代码中,变量`i`是`var`声明的,在全局范围内都有效。所以每一次循环,新的`i`值都会覆盖旧值,导致最后输出的是最后一轮的`i`的值。
上面代码中,变量`i`是`var`声明的,在全局范围内都有效,所以全局只有一个变量`i`。每一次循环,变量`i`的值都会发生改变,而循环内被赋给数组`a`的`function`在运行时,会通过闭包读到这同一个变量`i`,导致最后输出的是最后一轮的`i`的值,也就是10

如果使用`let`,声明的变量仅在块级作用域内有效,最后输出的是6。
而如果使用`let`,声明的变量仅在块级作用域内有效,最后输出的是6。

```javascript
var a = [];
Expand Down Expand Up @@ -559,7 +559,7 @@ foo.prop = 123;
```javascript
var constantize = (obj) => {
Object.freeze(obj);
Object.keys(obj).forEach( (key, value) => {
Object.keys(obj).forEach( (key, i) => {
if ( typeof obj[key] === 'object' ) {
constantize( obj[key] );
}
Expand Down