From 69a86e75c54ae6a8cda20ff0c854f8c24ebc3324 Mon Sep 17 00:00:00 2001 From: xianshenglu Date: Tue, 27 Feb 2018 09:28:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=A5=E8=B0=A8=E5=8C=96=20\S=20?= =?UTF-8?q?=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit \S 匹配所有非空白字符 而非所有不是空格的字符 --- docs/regex.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/regex.md b/docs/regex.md index 6a78a70..f64421b 100644 --- a/docs/regex.md +++ b/docs/regex.md @@ -105,7 +105,7 @@ ES6 新增了使用大括号表示 Unicode 字符,这种表示法在正则表 /^\S$/u.test('𠮷') // true ``` -上面代码的`\S`是预定义模式,匹配所有不是空格的字符。只有加了`u`修饰符,它才能正确匹配码点大于`0xFFFF`的 Unicode 字符。 +上面代码的`\S`是预定义模式,匹配所有非空白字符。只有加了`u`修饰符,它才能正确匹配码点大于`0xFFFF`的 Unicode 字符。 利用这一点,可以写出一个正确返回字符串长度的函数。 From 3d8af6149cf3d3f44fb03c1b126de142d8b451f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=A6=8F=E5=AE=97?= Date: Sat, 3 Mar 2018 20:35:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=99=E5=BD=93=E5=89=8D=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E5=8A=A0=E4=B8=8A=E5=90=8C=E5=90=8D=E5=B1=9E=E4=BA=8E?= =?UTF-8?q?=EF=BC=8C=E5=BD=A2=E6=88=90=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给当前对象加上同名属于,由于值不同,会有更直观的对比~ 同时,也和最后一个例子有呼应,方便初学者理解 --- docs/object.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/object.md b/docs/object.md index c524972..d6ef051 100644 --- a/docs/object.md +++ b/docs/object.md @@ -1032,6 +1032,7 @@ const proto = { }; const obj = { + foo: 'world', find() { return super.foo; } From fecda8655d4f31242a89fc69d9701a9445fa2c5c Mon Sep 17 00:00:00 2001 From: TinaC Date: Mon, 5 Mar 2018 10:26:07 +0800 Subject: [PATCH 3/3] fix typo --- docs/module-loader.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/module-loader.md b/docs/module-loader.md index 4e7f86d..aa3b23e 100644 --- a/docs/module-loader.md +++ b/docs/module-loader.md @@ -631,7 +631,7 @@ ReferenceError: foo is not defined 上面代码中,执行`a.mjs`以后会报错,`foo`变量未定义,这是为什么? -让我们一行行来看,ES6 循环加载是怎么处理的。首先,执行`a.mjs`以后,引擎发现它加载了`b.mjs`,因此会优先执行`b.mjs`,然后再执行`a.js`。接着,执行`b.mjs`的时候,已知它从`a.mjs`输入了`foo`接口,这时不会去执行`a.mjs`,而是认为这个接口已经存在了,继续往下执行。执行到第三行`console.log(foo)`的时候,才发现这个接口根本没定义,因此报错。 +让我们一行行来看,ES6 循环加载是怎么处理的。首先,执行`a.mjs`以后,引擎发现它加载了`b.mjs`,因此会优先执行`b.mjs`,然后再执行`a.mjs`。接着,执行`b.mjs`的时候,已知它从`a.mjs`输入了`foo`接口,这时不会去执行`a.mjs`,而是认为这个接口已经存在了,继续往下执行。执行到第三行`console.log(foo)`的时候,才发现这个接口根本没定义,因此报错。 解决这个问题的方法,就是让`b.mjs`运行的时候,`foo`已经有定义了。这可以通过将`foo`写成函数来解决。