1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-27 20:32:21 +00:00

修改let.md中不够具体的文字表述,修改示例代码使其更精确

This commit is contained in:
sikaco 2017-03-08 19:15:21 +08:00 committed by GitHub
parent 05b41ce255
commit 57fe8c62fc

View File

@ -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 = [];
@ -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] );
}