Skip to content

Commit 7db7838

Browse files
committed
Merge pull request ruanyf#154 from willin/gh-pages
强迫症修改"->'
2 parents 6067c0f + 59ed5c3 commit 7db7838

File tree

3 files changed

+34
-34
lines changed

3 files changed

+34
-34
lines changed

docs/async.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ fs.readFile(fileA, function (err, data) {
5050
});
5151
```
5252

53-
不难想象,如果依次读取多个文件,就会出现多重嵌套。代码不是纵向发展,而是横向发展,很快就会乱成一团,无法管理。这种情况就称为回调函数噩梦(callback hell)。
53+
不难想象,如果依次读取多个文件,就会出现多重嵌套。代码不是纵向发展,而是横向发展,很快就会乱成一团,无法管理。这种情况就称为"回调函数噩梦"(callback hell)。
5454

5555
Promise就是为了解决这个问题而提出的。它不是新的语法功能,而是一种新的写法,允许将回调函数的横向加载,改成纵向加载。采用Promise,连续读取多个文件,写法如下。
5656

docs/module.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { stat, exists, readFile } from 'fs';
3838

3939
## 严格模式
4040

41-
ES6的模块自动采用严格模式,不管你有没有在模块头部加上`"use strict"`
41+
ES6的模块自动采用严格模式,不管你有没有在模块头部加上`"use strict";`
4242

4343
严格模式主要有以下限制。
4444

@@ -181,16 +181,16 @@ export default es6;
181181

182182
```javascript
183183
// 提案的写法
184-
export v from "mod";
184+
export v from 'mod';
185185

186186
// 现行的写法
187-
export {v} from "mod";
187+
export {v} from 'mod';
188188
```
189189

190190
`import`语句会执行所加载的模块,因此可以有下面的写法。
191191

192192
```javascript
193-
import 'lodash'
193+
import 'lodash';
194194
```
195195

196196
上面代码仅仅执行`lodash`模块,但是不输入任何值。
@@ -220,17 +220,17 @@ export function circumference(radius) {
220220

221221
import { area, circumference } from './circle';
222222

223-
console.log("圆面积:" + area(4));
224-
console.log("圆周长:" + circumference(14));
223+
console.log('圆面积:' + area(4));
224+
console.log('圆周长:' + circumference(14));
225225
```
226226

227227
上面写法是逐一指定要加载的方法,整体加载的写法如下。
228228

229229
```javascript
230230
import * as circle from './circle';
231231

232-
console.log("圆面积:" + circle.area(4));
233-
console.log("圆周长:" + circle.circumference(14));
232+
console.log('圆面积:' + circle.area(4));
233+
console.log('圆周长:' + circle.circumference(14));
234234
```
235235

236236
## export default命令
@@ -256,7 +256,7 @@ import customName from './export-default';
256256
customName(); // 'foo'
257257
```
258258

259-
上面代码的`impor`t命令,可以用任意名称指向`export-default.js`输出的方法,这时就不需要知道原模块输出的函数名。需要注意的是,这时`import`命令后面,不使用大括号。
259+
上面代码的`import`命令,可以用任意名称指向`export-default.js`输出的方法,这时就不需要知道原模块输出的函数名。需要注意的是,这时`import`命令后面,不使用大括号。
260260

261261
`export default`命令用在非匿名函数前,也是可以的。
262262

@@ -394,8 +394,8 @@ export { area as circleArea } from 'circle';
394394
```javascript
395395
// main.js
396396

397-
import * as math from "circleplus";
398-
import exp from "circleplus";
397+
import * as math from 'circleplus';
398+
import exp from 'circleplus';
399399
console.log(exp(math.e));
400400
```
401401

docs/regex.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
在ES5中,RegExp构造函数只能接受字符串作为参数。
66

77
```javascript
8-
var regex = new RegExp("xyz", "i");
8+
var regex = new RegExp('xyz', 'i');
99
// 等价于
1010
var regex = /xyz/i;
1111
```
@@ -54,7 +54,7 @@ ES6对正则表达式添加了`u`修饰符,含义为“Unicode模式”,用
5454
点(.)字符在正则表达式中,含义是除了换行符以外的任意单个字符。对于码点大于`0xFFFF`的Unicode字符,点字符不能识别,必须加上u修饰符。
5555

5656
```javascript
57-
var s = "𠮷";
57+
var s = '𠮷';
5858

5959
/^.$/.test(s) // false
6060
/^.$/u.test(s) // true
@@ -112,7 +112,7 @@ function codePointLength(text) {
112112
return result ? result.length : 0;
113113
}
114114

115-
var s = "𠮷𠮷";
115+
var s = '𠮷𠮷';
116116

117117
s.length // 4
118118
codePointLength(s) // 2
@@ -136,7 +136,7 @@ codePointLength(s) // 2
136136
y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。
137137

138138
```javascript
139-
var s = "aaa_aa_a";
139+
var s = 'aaa_aa_a';
140140
var r1 = /a+/g;
141141
var r2 = /a+/y;
142142

@@ -207,7 +207,7 @@ REGEX.lastIndex // 4
207207
进一步说,`y`修饰符号隐含了头部匹配的标志ˆ
208208

209209
```javascript
210-
/b/y.exec("aba")
210+
/b/y.exec('aba')
211211
// null
212212
```
213213

@@ -307,7 +307,7 @@ ES6为正则表达式新增了flags属性,会返回正则表达式的修饰符
307307

308308
```javascript
309309
function escapeRegExp(str) {
310-
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
310+
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
311311
}
312312

313313
let str = '/path/to/resource.html?search=query';
@@ -320,13 +320,13 @@ escapeRegExp(str)
320320
已经有[提议](https://esdiscuss.org/topic/regexp-escape)将这个需求标准化,作为RegExp对象的静态方法[RegExp.escape()](https://github.com/benjamingr/RexExp.escape),放入ES7。2015年7月31日,TC39认为,这个方法有安全风险,又不愿这个方法变得过于复杂,没有同意将其列入ES7,但这不失为一个真实的需求。
321321

322322
```javascript
323-
RegExp.escape("The Quick Brown Fox");
323+
RegExp.escape('The Quick Brown Fox');
324324
// "The Quick Brown Fox"
325325

326-
RegExp.escape("Buy it. use it. break it. fix it.")
326+
RegExp.escape('Buy it. use it. break it. fix it.');
327327
// "Buy it\. use it\. break it\. fix it\."
328328

329-
RegExp.escape("(*.*)");
329+
RegExp.escape('(*.*)');
330330
// "\(\*\.\*\)"
331331
```
332332

@@ -342,8 +342,8 @@ assert.equal(String(regex), '/hello\. how are you\?/g');
342342

343343
```javascript
344344
var escape = require('regexp.escape');
345-
escape('hi. how are you?')
346-
"hi\\. how are you\\?"
345+
escape('hi. how are you?');
346+
// "hi\\. how are you\\?"
347347
```
348348

349349
## 后行断言
@@ -355,22 +355,22 @@ JavaScript语言的正则表达式,只支持先行断言(lookahead)和先
355355
”先行断言“指的是,`x`只有在`y`前面才匹配,必须写成`/x(?=y)/`。比如,只匹配百分号之前的数字,要写成`/\d+(?=%)/`。”先行否定断言“指的是,`x`只有不在`y`前面才匹配,必须写成`/x(?!y)/`。比如,只匹配不在百分号之前的数字,要写成`/\d+(?!%)/`
356356

357357
```javascript
358-
/\d+(?=%)/.exec("100% of US presidents have been male") // ["100"]
359-
/\d+(?!%)/.exec("that’s all 44 of them") // ["44"]
358+
/\d+(?=%)/.exec('100% of US presidents have been male') // ["100"]
359+
/\d+(?!%)/.exec('that’s all 44 of them') // ["44"]
360360
```
361361

362362
上面两个字符串,如果互换正则表达式,就会匹配失败。另外,还可以看到,”先行断言“括号之中的部分(`(?=%)`),是不计入返回结果的。
363363

364-
后行断言正好与先行断言相反,`x`只有在`y`后面才匹配,必须写成`/(?<=y)x/`。比如,只匹配美元符号之后的数字,要写成`/(?<=\$)\d+/`。”后行否定断言“则与”先行否定断言“相反,`x`只有不在`y`后面才匹配,必须写成`/(?<!y)x/`。比如,只匹配不在美元符号后面的数字,要写成`/(?<!\$)\d+/`
364+
"后行断言"正好与"先行断言"相反,`x`只有在`y`后面才匹配,必须写成`/(?<=y)x/`。比如,只匹配美元符号之后的数字,要写成`/(?<=\$)\d+/`。”后行否定断言“则与”先行否定断言“相反,`x`只有不在`y`后面才匹配,必须写成`/(?<!y)x/`。比如,只匹配不在美元符号后面的数字,要写成`/(?<!\$)\d+/`
365365

366366
```javascript
367-
/(?<=\$)\d+/.exec("Benjamin Franklin is on the $100 bill") // ["100"]
368-
/(?<!\$)\d+/.exec("it’s is worth about €90") // ["90"]
367+
/(?<=\$)\d+/.exec('Benjamin Franklin is on the $100 bill') // ["100"]
368+
/(?<!\$)\d+/.exec('it’s is worth about €90') // ["90"]
369369
```
370370

371-
上面的例子中,后行断言的括号之中的部分(`(?<=\$)`),也是不计入返回结果。
371+
上面的例子中,"后行断言"的括号之中的部分(`(?<=\$)`),也是不计入返回结果。
372372

373-
后行断言的实现,需要先匹配`/(?<=y)x/``x`,然后再回到左边,匹配`y`的部分。这种先右后左的执行顺序,与所有其他正则操作相反,导致了一些不符合预期的行为。
373+
"后行断言"的实现,需要先匹配`/(?<=y)x/``x`,然后再回到左边,匹配`y`的部分。这种"先右后左"的执行顺序,与所有其他正则操作相反,导致了一些不符合预期的行为。
374374

375375
首先,”后行断言“的组匹配,与正常情况下结果是不一样的。
376376

@@ -379,13 +379,13 @@ JavaScript语言的正则表达式,只支持先行断言(lookahead)和先
379379
/^(\d+)(\d+)$/.exec('1053') // ["1053", "105", "3"]
380380
```
381381

382-
上面代码中,需要捕捉两个组匹配。没有后行断言时,第一个括号是贪婪模式,第二个括号只能捕获一个字符,所以结果是`105``3`。而后行断言时,由于执行顺序是从右到左,第二个括号是贪婪模式,第一个括号只能捕获一个字符,所以结果是`1``053`
382+
上面代码中,需要捕捉两个组匹配。没有"后行断言"时,第一个括号是贪婪模式,第二个括号只能捕获一个字符,所以结果是`105``3`。而"后行断言"时,由于执行顺序是从右到左,第二个括号是贪婪模式,第一个括号只能捕获一个字符,所以结果是`1``053`
383383

384-
其次,后行断言的反斜杠引用,也与通常的顺序相反,必须放在对应的那个括号之前。
384+
其次,"后行断言"的反斜杠引用,也与通常的顺序相反,必须放在对应的那个括号之前。
385385

386386
```javascript
387-
/(?<=(o)d\1)r/.exec("hodor") // null
388-
/(?<=\1d(o))r/.exec("hodor") // ["r", "o"]
387+
/(?<=(o)d\1)r/.exec('hodor') // null
388+
/(?<=\1d(o))r/.exec('hodor') // ["r", "o"]
389389
```
390390

391391
上面代码中,如果后行断言的反斜杠引用(`\1`)放在括号的后面,就不会得到匹配结果,必须放在前面才可以。

0 commit comments

Comments
 (0)