From 95caa944a3adacaf826fed60e4548b8d0b2c1ee6 Mon Sep 17 00:00:00 2001 From: zhangbao Date: Mon, 1 Jan 2018 18:13:54 +0800 Subject: [PATCH 1/6] =?UTF-8?q?docs(destructuring):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8F=A5=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将否定句改为肯定句,更能快速理解。 --- docs/destructuring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/destructuring.md b/docs/destructuring.md index 0648f5d..3d1cc73 100644 --- a/docs/destructuring.md +++ b/docs/destructuring.md @@ -130,7 +130,7 @@ foo // true [x, y = 'b'] = ['a', undefined]; // x='a', y='b' ``` -注意,ES6内部使用严格相等运算符(`===`),判断一个位置是否有值。所以,如果一个数组成员不严格等于`undefined`,默认值是不会生效的。 +注意,ES6内部使用严格相等运算符(`===`),判断一个位置是否有值。而且,只有当一个数组成员严格等于`undefined`,默认值才会生效。 ```javascript var [x = 1] = [undefined]; From 083c99e838b487d18642042bf9c33ead93c57a18 Mon Sep 17 00:00:00 2001 From: zhangbao Date: Mon, 1 Jan 2018 18:23:16 +0800 Subject: [PATCH 2/6] =?UTF-8?q?docs(destructuring):=20=E8=A1=A5=E5=85=A8?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这样直接看代码的话,更能直观了解到要先声明 y 才能使用它,而不是在声明 y 前就使用它。 --- docs/destructuring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/destructuring.md b/docs/destructuring.md index 3d1cc73..82acefb 100644 --- a/docs/destructuring.md +++ b/docs/destructuring.md @@ -169,10 +169,10 @@ if ([1][0] === undefined) { let [x = 1, y = x] = []; // x=1; y=1 let [x = 1, y = x] = [2]; // x=2; y=2 let [x = 1, y = x] = [1, 2]; // x=1; y=2 -let [x = y, y = 1] = []; // ReferenceError +let [x = y, y = 1] = []; // ReferenceError: y is not defined ``` -上面最后一个表达式之所以会报错,是因为`x`用到默认值`y`时,`y`还没有声明。 +上面最后一个表达式之所以会报错,是因为`x`用`y`做默认值时,`y`还没有声明。 ## 对象的解构赋值 From 73cd2a2f92e94f47c943099817b88be1c75be0f4 Mon Sep 17 00:00:00 2001 From: zhangbao Date: Mon, 1 Jan 2018 18:37:57 +0800 Subject: [PATCH 3/6] docs(destructuring): fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了两处: 第一处:去掉假设词“如果”;明确`null`是个有效的赋值,它导致了默认值`3`失效。 第二处:参考章节字样使用圆括号括起来了。 --- docs/destructuring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/destructuring.md b/docs/destructuring.md index 82acefb..ba8d505 100644 --- a/docs/destructuring.md +++ b/docs/destructuring.md @@ -324,7 +324,7 @@ var {x = 3} = {x: null}; x // null ``` -上面代码中,如果`x`属性等于`null`,就不严格相等于`undefined`,导致默认值不会生效。 +上面代码中,属性`x`等于`null`,因为`null`与`undefined`不严格相等,所以是个有效的赋值,导致默认值`3`不会生效。 如果解构失败,变量的值等于`undefined`。 @@ -392,7 +392,7 @@ first // 1 last // 3 ``` -上面代码对数组进行对象解构。数组`arr`的`0`键对应的值是`1`,`[arr.length - 1]`就是`2`键,对应的值是`3`。方括号这种写法,属于“属性名表达式”,参见《对象的扩展》一章。 +上面代码对数组进行对象解构。数组`arr`的`0`键对应的值是`1`,`[arr.length - 1]`就是`2`键,对应的值是`3`。方括号这种写法,属于“属性名表达式”(参见《对象的扩展》一章)。 ## 字符串的解构赋值 From 686fb84a3276fbc619ef521e0a8e303d1d26a8ee Mon Sep 17 00:00:00 2001 From: zhangbao Date: Mon, 1 Jan 2018 21:56:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?docs(module):=20=E4=BF=AE=E6=94=B9=E5=8F=A5?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 较为清楚地表达意思。 --- docs/module.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/module.md b/docs/module.md index 4c9add1..c27fa18 100644 --- a/docs/module.md +++ b/docs/module.md @@ -390,7 +390,7 @@ import {crc32} from 'crc32'; // 输入 上面代码的两组写法,第一组是使用`export default`时,对应的`import`语句不需要使用大括号;第二组是不使用`export default`时,对应的`import`语句需要使用大括号。 -`export default`命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此`export default`命令只能使用一次。所以,`import`命令后面才不用加大括号,因为只可能对应一个方法。 +`export default`命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此`export default`命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能唯一对应`export default`命令。 本质上,`export default`就是输出一个叫做`default`的变量或方法,然后系统允许你为它取任意名字。所以,下面的写法是有效的。 @@ -425,7 +425,7 @@ export default var a = 1; 上面代码中,`export default a`的含义是将变量`a`的值赋给变量`default`。所以,最后一种写法会报错。 -同样地,因为`export default`本质是将该命令后面的值,赋给`default`变量以后再默认,所以直接将一个值写在`export default`之后。 +同样地,因为`export default`命令的本质是将后面的值,赋给`default`变量,所以可以直接将一个值写在`export default`之后。 ```javascript // 正确 From edc4ff260cb8511bdd25bc92643c936b7214d590 Mon Sep 17 00:00:00 2001 From: zhangbao Date: Tue, 2 Jan 2018 15:03:01 +0800 Subject: [PATCH 5/6] =?UTF-8?q?doc(destructuring):=20=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E5=8D=95=E8=AF=8D=E4=B8=8E=E4=B8=AD=E6=96=87=E4=B9=8B=E9=97=B4?= =?UTF-8?q?=E7=A9=BA=E4=B8=80=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/destructuring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/destructuring.md b/docs/destructuring.md index a06d1e7..709b51a 100644 --- a/docs/destructuring.md +++ b/docs/destructuring.md @@ -122,7 +122,7 @@ let [x, y = 'b'] = ['a']; // x='a', y='b' let [x, y = 'b'] = ['a', undefined]; // x='a', y='b' ``` -注意,ES6内部使用严格相等运算符(`===`),判断一个位置是否有值。而且,只有当一个数组成员严格等于`undefined`,默认值才会生效。 +注意,ES6 内部使用严格相等运算符(`===`),判断一个位置是否有值。而且,只有当一个数组成员严格等于`undefined`,默认值才会生效。 ```javascript let [x = 1] = [undefined]; From 1ed4d662781ed785a2271391c9dcb3ac22badeb6 Mon Sep 17 00:00:00 2001 From: zhangbao Date: Tue, 2 Jan 2018 15:12:39 +0800 Subject: [PATCH 6/6] docs(destructuring): fix typo --- docs/destructuring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/destructuring.md b/docs/destructuring.md index 709b51a..5f69ec7 100644 --- a/docs/destructuring.md +++ b/docs/destructuring.md @@ -122,7 +122,7 @@ let [x, y = 'b'] = ['a']; // x='a', y='b' let [x, y = 'b'] = ['a', undefined]; // x='a', y='b' ``` -注意,ES6 内部使用严格相等运算符(`===`),判断一个位置是否有值。而且,只有当一个数组成员严格等于`undefined`,默认值才会生效。 +注意,ES6 内部使用严格相等运算符(`===`),判断一个位置是否有值。所以,只有当一个数组成员严格等于`undefined`,默认值才会生效。 ```javascript let [x = 1] = [undefined];