Skip to content

Commit aa9399e

Browse files
authored
Merge pull request wangdoc#92 from fengyuanchen/master
Fix typos
2 parents c5ba95f + ed3b903 commit aa9399e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+89
-135
lines changed

docs/async/general.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ JavaScript 之所以采用单线程,而不是多线程,跟历史有关系。
2222

2323
同步任务是那些没有被引擎挂起、在主线程上排队执行的任务。只有前一个任务执行完毕,才能执行后一个任务。
2424

25-
异步任务是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。只有引擎认为某个异步任务可以执行了(比如 Ajax 操作从服务器得到了结果),该任务(采用回调函数的形式)才会进入主线程执行。排在异步任务后面的代码,不用等待异步任务结束会马上运行,也就是说,异步任务不具有”堵塞“效应。
25+
异步任务是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。只有引擎认为某个异步任务可以执行了(比如 Ajax 操作从服务器得到了结果),该任务(采用回调函数的形式)才会进入主线程执行。排在异步任务后面的代码,不用等待异步任务结束会马上运行,也就是说,异步任务不具有“堵塞”效应。
2626

2727
举例来说,Ajax 操作可以当作同步任务处理,也可以当作异步任务处理,由开发者决定。如果是同步任务,主线程就等着 Ajax 操作返回结果,再往下执行;如果是异步任务,主线程在发出 Ajax 请求以后,就直接往下执行,等到 Ajax 操作有了结果,主线程再执行对应的回调函数。
2828

@@ -101,11 +101,11 @@ function f1() {
101101

102102
上面代码中,`f1.trigger('done')`表示,执行完成后,立即触发`done`事件,从而开始执行`f2`
103103

104-
这种方法的优点是比较容易理解,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以[去耦合](http://en.wikipedia.org/wiki/Decoupling)(decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。阅读代码的时候,很难看出主流程。
104+
这种方法的优点是比较容易理解,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以[去耦合](http://en.wikipedia.org/wiki/Decoupling)(decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。阅读代码的时候,很难看出主流程。
105105

106106
### 发布/订阅
107107

108-
事件完全可以理解成”信号“,如果存在一个”信号中心“,某个任务执行完成,就向信号中心”发布“(publish)一个信号,其他任务可以向信号中心”订阅“(subscribe)这个信号,从而知道什么时候自己可以开始执行。这就叫做”[发布/订阅模式](http://en.wikipedia.org/wiki/Publish-subscribe_pattern)”(publish-subscribe pattern),又称“[观察者模式](http://en.wikipedia.org/wiki/Observer_pattern)”(observer pattern)。
108+
事件完全可以理解成“信号”,如果存在一个“信号中心”,某个任务执行完成,就向信号中心“发布”(publish)一个信号,其他任务可以向信号中心“订阅”(subscribe)这个信号,从而知道什么时候自己可以开始执行。这就叫做”[发布/订阅模式](http://en.wikipedia.org/wiki/Publish-subscribe_pattern)”(publish-subscribe pattern),又称“[观察者模式](http://en.wikipedia.org/wiki/Observer_pattern)”(observer pattern)。
109109

110110
这个模式有多种[实现](http://msdn.microsoft.com/en-us/magazine/hh201955.aspx),下面采用的是 Ben Alman 的 [Tiny Pub/Sub](https://gist.github.com/661855),这是 jQuery 的一个插件。
111111

@@ -285,4 +285,3 @@ launcher();
285285
上面代码中,最多只能同时运行两个异步任务。变量`running`记录当前正在运行的任务数,只要低于门槛值,就再启动一个新的任务,如果等于`0`,就表示所有任务都执行完了,这时就执行`final`函数。
286286

287287
这段代码需要三秒完成整个脚本,处在串行执行和并行执行之间。通过调节`limit`变量,达到效率和资源的最佳平衡。
288-

docs/async/timer.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,4 +364,3 @@ timer = setTimeout(func, 0);
364364
上面代码有两种写法,都是改变一个网页元素的背景色。写法一会造成浏览器“堵塞”,因为 JavaScript 执行速度远高于 DOM,会造成大量 DOM 操作“堆积”,而写法二就不会,这就是`setTimeout(f, 0)`的好处。
365365

366366
另一个使用这种技巧的例子是代码高亮的处理。如果代码块很大,一次性处理,可能会对性能造成很大的压力,那么将其分成一个个小块,一次处理一块,比如写成`setTimeout(highlightNext, 50)`的样子,性能压力就会减轻。
367-

docs/basic/grammar.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ var 临时变量 = 1;
181181
182182
## 注释
183183

184-
源码中被 JavaScript 引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript 提供两种注释的写法:一种是单行注释,用`//`起头;另一种是多行注释,放在`/*``*/`之间。
184+
源码中被 JavaScript 引擎忽略的部分就叫做注释,它的作用是对代码进行解释。JavaScript 提供两种注释的写法:一种是单行注释,用`//`起头;另一种是多行注释,放在`/*``*/`之间。
185185

186186
```javascript
187187
// 这是单行注释
@@ -333,7 +333,7 @@ else console.log('world');
333333
```javascript
334334
if (m !== 1) {
335335
if (n === 2) {
336-
console.log('hello');
336+
console.log('hello');
337337
} else {
338338
console.log('world');
339339
}
@@ -345,7 +345,7 @@ if (m !== 1) {
345345
```javascript
346346
if (m !== 1) {
347347
if (n === 2) {
348-
console.log('hello');
348+
console.log('hello');
349349
}
350350
} else {
351351
console.log('world');
@@ -728,4 +728,3 @@ top:
728728
## 参考链接
729729
730730
- Axel Rauschmayer, [A quick overview of JavaScript](http://www.2ality.com/2011/10/javascript-overview.html)
731-

docs/basic/history.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,13 @@ ECMA-262 标准后来也被另一个国际标准化组织 ISO(International Or
7575

7676
2009年12月,ECMAScript 5.0版 正式发布。Harmony 项目则一分为二,一些较为可行的设想定名为 JavaScript.next 继续开发,后来演变成 ECMAScript 6;一些不是很成熟的设想,则被视为 JavaScript.next.next,在更远的将来再考虑推出。TC39 的总体考虑是,ECMAScript 5 与 ECMAScript 3 基本保持兼容,较大的语法修正和新功能加入,将由 JavaScript.next 完成。当时,JavaScript.next 指的是ECMAScript 6。第六版发布以后,将指 ECMAScript 7。TC39 预计,ECMAScript 5 会在2013年的年中成为 JavaScript 开发的主流标准,并在此后五年中一直保持这个位置。
7777

78-
2011年6月,ECMAscript 5.1版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。到了2012年底,所有主要浏览器都支持 ECMAScript 5.1版的全部功能。
78+
2011年6月,ECMAScript 5.1版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。到了2012年底,所有主要浏览器都支持 ECMAScript 5.1版的全部功能。
7979

8080
2013年3月,ECMAScript 6 草案冻结,不再添加新功能。新的功能设想将被放到 ECMAScript 7。
8181

8282
2013年12月,ECMAScript 6 草案发布。然后是12个月的讨论期,听取各方反馈。
8383

84-
2015年6月,ECMAScript 6 正式发布,并且更名为“ECMAScript 2015”。这是因为 TC39 委员会计划,以后每年发布一个 ECMAScript 的版本,下一个版本在2016年发布,称为ECMAScript 2016”,2017年发布“ECMAScript 2017”,以此类推。
84+
2015年6月,ECMAScript 6 正式发布,并且更名为“ECMAScript 2015”。这是因为 TC39 委员会计划,以后每年发布一个 ECMAScript 的版本,下一个版本在2016年发布,称为ECMAScript 2016”,2017年发布“ECMAScript 2017”,以此类推。
8585

8686
## 周边大事记
8787

@@ -185,4 +185,3 @@ JavaScript 伴随着互联网的发展一起发展。互联网周边技术的快
185185
- John Dalziel, [The race for speed part 4: The future for JavaScript](http://creativejs.com/2013/06/the-race-for-speed-part-4-the-future-for-javascript/)
186186
- Axel Rauschmayer, [Basic JavaScript for the impatient programmer](http://www.2ality.com/2013/06/basic-javascript.html)
187187
- resin.io, [Happy 18th Birthday JavaScript! A look at an unlikely past and bright future](http://resin.io/happy-18th-birthday-javascript/)
188-

docs/basic/introduction.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ Mozilla 基金会的手机操作系统 Firefox OS,更是直接将 JavaScript
6969

7070
**(6)跨平台的桌面应用程序**
7171

72-
Chromium OS、Windows 8 等操作系统直接支持 JavaScript 编写应用程序。Mozilla 的 Open Web Apps 项目、Google 的 [Chrome App 项目](http://developer.chrome.com/apps/about_apps)Github[Electron 项目](http://electron.atom.io/)、以及 [TideSDK 项目](http://tidesdk.multipart.net/docs/user-dev/generated/),都可以用来编写运行于 Windows、Mac OS 和 Android 等多个桌面平台的程序,不依赖浏览器。
72+
Chromium OS、Windows 8 等操作系统直接支持 JavaScript 编写应用程序。Mozilla 的 Open Web Apps 项目、Google 的 [Chrome App 项目](http://developer.chrome.com/apps/about_apps)GitHub[Electron 项目](http://electron.atom.io/)、以及 [TideSDK 项目](http://tidesdk.multipart.net/docs/user-dev/generated/),都可以用来编写运行于 Windows、Mac OS 和 Android 等多个桌面平台的程序,不依赖浏览器。
7373

7474
**(7)小结**
7575

76-
可以预期,JavaScript 最终将能让你只用一种语言,就开发出适应不同平台(包括桌面端、服务器端、手机端)的程序。早在2013年9月的[统计](http://adambard.com/blog/top-github-languages-for-2013-so-far/)之中,JavaScript 就是当年 Github 上使用量排名第一的语言。
76+
可以预期,JavaScript 最终将能让你只用一种语言,就开发出适应不同平台(包括桌面端、服务器端、手机端)的程序。早在2013年9月的[统计](http://adambard.com/blog/top-github-languages-for-2013-so-far/)之中,JavaScript 就是当年 GitHub 上使用量排名第一的语言。
7777

7878
著名程序员 Jeff Atwood 甚至提出了一条 [“Atwood 定律”](http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html)
7979

@@ -162,4 +162,3 @@ function greetMe(yourName) {
162162
greetMe('World')
163163
// Hello World
164164
```
165-

docs/bom/cookie.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,4 +259,3 @@ document.cookie = 'fontSize=;expires=Thu, 01-Jan-1970 00:00:01 GMT';
259259
## 参考链接
260260

261261
- [HTTP cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies), by MDN
262-

docs/bom/engine.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ URL 支持`javascript:`协议,即在 URL 的位置写入代码,使用这个
104104
<a href="javascript:console.log('Hello')">点击</a>
105105
```
106106

107-
浏览器的地址栏也可以执行`javascipt:`协议。将`javascript:console.log('Hello')`放入地址栏,按回车键也会执行这段代码。
107+
浏览器的地址栏也可以执行`javascript:`协议。将`javascript:console.log('Hello')`放入地址栏,按回车键也会执行这段代码。
108108

109109
如果 JavaScript 代码返回一个字符串,浏览器就会新建一个文档,展示这个字符串的内容,原有文档的内容都会消失。
110110

@@ -139,8 +139,8 @@ URL 支持`javascript:`协议,即在 URL 的位置写入代码,使用这个
139139

140140
1. 浏览器一边下载 HTML 网页,一边开始解析。也就是说,不等到下载完,就开始解析。
141141
2. 解析过程中,浏览器发现`<script>`元素,就暂停解析,把网页渲染的控制权转交给 JavaScript 引擎。
142-
4. 如果`<script>`元素引用了外部脚本,就下载该脚本再执行,否则就直接执行代码。
143-
5. JavaScript 引擎执行完毕,控制权交还渲染引擎,恢复往下解析 HTML 网页。
142+
3. 如果`<script>`元素引用了外部脚本,就下载该脚本再执行,否则就直接执行代码。
143+
4. JavaScript 引擎执行完毕,控制权交还渲染引擎,恢复往下解析 HTML 网页。
144144

145145
加载外部脚本时,浏览器会暂停页面渲染,等待脚本下载并执行完成后,再继续渲染。原因是 JavaScript 代码可以修改 DOM,所以必须把控制权让给它,否则会导致复杂的线程竞赛的问题。
146146

@@ -419,19 +419,19 @@ JavaScript 是一种解释型语言,也就是说,它不需要编译,由解
419419

420420
字节码不能直接运行,而是运行在一个虚拟机(Virtual Machine)之上,一般也把虚拟机称为 JavaScript 引擎。并非所有的 JavaScript 虚拟机运行时都有字节码,有的 JavaScript 虚拟机基于源码,即只要有可能,就通过 JIT(just in time)编译器直接把源码编译成机器码运行,省略字节码步骤。这一点与其他采用虚拟机(比如 Java)的语言不尽相同。这样做的目的,是为了尽可能地优化代码、提高性能。下面是目前最常见的一些 JavaScript 虚拟机:
421421

422-
- [Chakra](http://en.wikipedia.org/wiki/Chakra_(JScript_engine\))(Microsoft Internet Explorer)
422+
- [Chakra](https://en.wikipedia.org/wiki/Chakra_(JScript_engine)) (Microsoft Internet Explorer)
423423
- [Nitro/JavaScript Core](http://en.wikipedia.org/wiki/WebKit#JavaScriptCore) (Safari)
424424
- [Carakan](http://dev.opera.com/articles/view/labs-carakan/) (Opera)
425425
- [SpiderMonkey](https://developer.mozilla.org/en-US/docs/SpiderMonkey) (Firefox)
426-
- [V8](http://en.wikipedia.org/wiki/V8_(JavaScript_engine\)) (Chrome, Chromium)
426+
- [V8](https://en.wikipedia.org/wiki/Chrome_V8) (Chrome, Chromium)
427427

428428
## 参考链接
429429

430430
- John Dalziel, [The race for speed part 2: How JavaScript compilers work](http://creativejs.com/2013/06/the-race-for-speed-part-2-how-javascript-compilers-work/)
431-
- Jake Archibald[Deep dive into the murky waters of script loading](http://www.html5rocks.com/en/tutorials/speed/script-loading/)
431+
- Jake Archibald, [Deep dive into the murky waters of script loading](http://www.html5rocks.com/en/tutorials/speed/script-loading/)
432432
- Mozilla Developer Network, [window.setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/window.setTimeout)
433433
- Remy Sharp, [Throttling function calls](http://remysharp.com/2010/07/21/throttling-function-calls/)
434-
- Ayman Farhat, [An alternative to Javascript's evil setInterval](http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/)
434+
- Ayman Farhat, [An alternative to JavaScript's evil setInterval](http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/)
435435
- Ilya Grigorik, [Script-injected "async scripts" considered harmful](https://www.igvita.com/2014/05/20/script-injected-async-scripts-considered-harmful/)
436436
- Axel Rauschmayer, [ECMAScript 6 promises (1/2): foundations](http://www.2ality.com/2014/09/es6-promises-foundations.html)
437437
- Daniel Imms, [async vs defer attributes](http://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html)

docs/bom/file.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ FileReader 有以下的实例属性。
109109
- FileReader.onload:`load`事件(读取操作完成)的监听函数,通常在这个函数里面使用`result`属性,拿到文件内容。
110110
- FileReader.onloadstart:`loadstart`事件(读取操作开始)的监听函数。
111111
- FileReader.onloadend:`loadend`事件(读取操作结束)的监听函数。
112-
- FileReader.onprogress:`progess`事件(读取操作进行中)的监听函数。
112+
- FileReader.onprogress:`progress`事件(读取操作进行中)的监听函数。
113113

114114
下面是监听`load`事件的一个例子。
115115

docs/bom/form.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ for (var value of formData.values()) {
173173
// "value2"
174174

175175
for (var pair of formData.entries()) {
176-
console.log(pair[0] + ': ' + pair[1]);
176+
console.log(pair[0] + ': ' + pair[1]);
177177
}
178178
// key1: value1
179179
// key2: value2
@@ -272,7 +272,7 @@ document.querySelector('form input').validationMessage
272272
var myInput = document.getElementById('myinput');
273273
if (!myInput.checkValidity()) {
274274
document.getElementById('prompt').innerHTML = myInput.validationMessage;
275-
}
275+
}
276276
```
277277

278278
### setCustomValidity()
@@ -312,15 +312,15 @@ function checkFileSize() {
312312

313313
该对象有以下属性,全部为只读属性。
314314

315-
- `ValidityState.badInput`:布尔值,表示浏览器是否不能将用户的输入转换成正确的类型,比如用户在数值框里面输入字符串。
315+
- `ValidityState.badInput`:布尔值,表示浏览器是否不能将用户的输入转换成正确的类型,比如用户在数值框里面输入字符串。
316316
- `ValidityState.customError`:布尔值,表示是否已经调用`setCustomValidity()`方法,将校验信息设置为一个非空字符串。
317317
- `ValidityState.patternMismatch`:布尔值,表示用户输入的值是否不满足模式的要求。
318318
- `ValidityState.rangeOverflow`:布尔值,表示用户输入的值是否大于最大范围。
319319
- `ValidityState.rangeUnderflow`:布尔值,表示用户输入的值是否小于最小范围。
320320
- `ValidityState.stepMismatch`:布尔值,表示用户输入的值不符合步长的设置(即不能被步长值整除)。
321321
- `ValidityState.tooLong`:布尔值,表示用户输入的字数超出了最长字数。
322322
- `ValidityState.tooShort`:布尔值,表示用户输入的字符少于最短字数。
323-
- `ValidityState.typeMismatch`:布尔值,表示用户填入的值不符合类型要求(主要是类型为 Email 或 URL 的情况)。
323+
- `ValidityState.typeMismatch`:布尔值,表示用户填入的值不符合类型要求(主要是类型为 Email 或 URL 的情况)。
324324
- `ValidityState.valid`:布尔值,表示用户是否满足所有校验条件。
325325
- `ValidityState.valueMissing`:布尔值,表示用户没有填入必填的值。
326326

@@ -368,7 +368,7 @@ form.noValidate = true;
368368
</form>
369369
```
370370

371-
## enctype 属性
371+
## enctype 属性
372372

373373
表单能够用四种编码,向服务器发送数据。编码格式由表单的`enctype`属性决定。
374374

@@ -553,4 +553,3 @@ xhr.open('POST', 'myserver/uploads');
553553
xhr.setRequestHeader('Content-Type', file.type);
554554
xhr.send(file);
555555
```
556-

docs/bom/history.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ History 对象主要有两个属性。
3333
// 当前窗口访问过多少个网页
3434
window.history.length // 1
3535

36-
// Histroy 对象的当前状态
36+
// History 对象的当前状态
3737
// 通常是 undefined,即未设置
3838
window.history.state // undefined
3939
```
@@ -163,4 +163,3 @@ var currentState = history.state;
163163
```
164164

165165
注意,页面第一次加载的时候,浏览器不会触发`popstate`事件。
166-

docs/bom/indexeddb.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ DBOpenRequest.onsuccess = function (event) {
597597
};
598598

599599
transaction.onerror = function (event) {
600-
console.log('tansaction error: ' + transaction.error);
600+
console.log('transaction error: ' + transaction.error);
601601
};
602602

603603
var objectStore = transaction.objectStore('items');
@@ -819,11 +819,11 @@ DBOpenRequest.onsuccess = function(event) {
819819
var transaction = db.transaction(['demo'], 'readwrite');
820820

821821
transaction.oncomplete = function (event) {
822-
console.log('transaction success');
822+
console.log('transaction success');
823823
};
824824

825825
transaction.onerror = function (event) {
826-
console.log('tansaction error: ' + transaction.error);
826+
console.log('transaction error: ' + transaction.error);
827827
};
828828

829829
var objectStore = transaction.objectStore('demo');
@@ -920,7 +920,7 @@ IDBIndex 对象有以下方法,它们都是异步的,立即返回的都是
920920

921921
## IDBCursor 对象
922922

923-
IDBCursor 对象代表指针对象,用来遍历数据仓库(IDBObjectStroe)或索引(IDBIndex)的记录。
923+
IDBCursor 对象代表指针对象,用来遍历数据仓库(IDBObjectStore)或索引(IDBIndex)的记录。
924924

925925
IDBCursor 对象一般通过`IDBObjectStore.openCursor()`方法获得。
926926

@@ -998,7 +998,7 @@ var r7 = IDBKeyRange.bound(x, y, true, false);
998998
// All keys ≥ x &&< y
999999
var r8 = IDBKeyRange.bound(x, y, false, true);
10001000

1001-
// The key = z
1001+
// The key = z
10021002
var r9 = IDBKeyRange.only(z);
10031003
```
10041004

0 commit comments

Comments
 (0)