Skip to content

Commit 1c08dc3

Browse files
omvjroleviding
andauthored
fix: 错译和润色 (#1196)
* feat: polish * Update article.md * Update article.md * Update article.md * Update article.md --------- Co-authored-by: LeviDing <imdingxuewen@gmail.com>
1 parent 036a600 commit 1c08dc3

File tree

9 files changed

+23
-23
lines changed

9 files changed

+23
-23
lines changed

1-js/02-first-steps/05-types/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -272,17 +272,17 @@ typeof alert // "function" (3)
272272
273273
## 总结
274274
275-
JavaScript 中有八种基本的数据类型(译注:前七种为基本数据类型,也称为原始数据类型,而 `object` 为复杂数据类型)
275+
JavaScript 中有八种基本的数据类型。
276276
277-
- 七种原始数据类型:
277+
- 七种原始数据类型(基本数据类型)
278278
- `number` 用于任何类型的数字:整数或浮点数,在 <code>±(2<sup>53</sup>-1)</code> 范围内的整数。
279279
- `bigint` 用于任意长度的整数。
280280
- `string` 用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。
281281
- `boolean` 用于 `true``false`
282282
- `null` 用于未知的值 —— 只有一个 `null` 值的独立类型。
283283
- `undefined` 用于未定义的值 —— 只有一个 `undefined` 值的独立类型。
284284
- `symbol` 用于唯一的标识符。
285-
- 以及一种非原始数据类型:
285+
- 以及一种非原始数据类型(复杂数据类型)
286286
- `object` 用于更复杂的数据结构。
287287
288288
我们可以通过 `typeof` 运算符查看存储在变量中的数据类型。

1-js/09-classes/03-static-properties-methods/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# 静态属性和静态方法
33

4-
我们可以把一个方法作为一个整体赋值给类。这样的方法被称为 **静态的(static)**
4+
我们也可以把一个方法赋值给一整个类。这样的方法被称为 **静态的(static)**
55

66
在一个类的声明中,它们以 `static` 关键字开头,如下所示:
77

1-js/09-classes/05-extend-natives/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ arr.constructor === PowerArray
3232

3333
甚至,我们可以定制这种行为。
3434

35-
我们可以给这个类添加一个特殊的静态 getter `Symbol.species`。如果存在,则应返回 JavaScript 在内部用来在 `map``filter` 等方法中创建新实体的 `constructor`
35+
我们可以给这个类添加一个特殊的静态 getter `Symbol.species`,它会返回 JavaScript 在内部用来在 `map``filter` 等方法中创建新实体的 `constructor`
3636

3737
如果我们希望像 `map``filter` 这样的内建方法返回常规数组,我们可以在 `Symbol.species` 中返回 `Array`,就像这样:
3838

1-js/09-classes/07-mixins/article.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
在 JavaScript 中,我们只能继承单个对象。每个对象只能有一个 `[[Prototype]]`。并且每个类只可以扩展另外一个类。
44

5-
但是有些时候这种设定(译注:单继承)会让人感到受限制。例如,我有一个 `StreetSweeper` 类和一个 `Bicycle` 类,现在想要一个它们的 mixin`StreetSweepingBicycle` 类。
5+
但是有些时候这种设定(译注:单继承)会让人感到受限制。例如,我有一个 `StreetSweeper` 类和一个 `Bicycle` 类,现在想要一个它们的混合体`StreetSweepingBicycle` 类。
66

77
或者,我们有一个 `User` 类和一个 `EventEmitter` 类来实现事件生成(event generation),并且我们想将 `EventEmitter` 的功能添加到 `User` 中,以便我们的用户可以触发事件(emit event)。
88

9-
有一个概念可以帮助我们,叫做 "mixins"。
9+
有一个概念可以帮助我们,叫做 "mixin"。
1010

11-
根据维基百科的定义,[mixin](https://en.wikipedia.org/wiki/Mixin) 是一个包含可被其他类使用而无需继承的方法的类
11+
根据维基百科的定义,[mixin](https://en.wikipedia.org/wiki/Mixin) 是一个类,其方法可被其他类使用,而无需继承
1212

1313
换句话说,*mixin* 提供了实现特定行为的方法,但是我们不单独使用它,而是使用它来将这些行为添加到其他类中。
1414

@@ -47,7 +47,7 @@ Object.assign(User.prototype, sayHiMixin);
4747
new User("Dude").sayHi(); // Hello Dude!
4848
```
4949

50-
这里没有继承,只有一个简单的方法拷贝。所以 `User` 可以从另一个类继承,还可以包括 mixin 来 "mix-in其它方法,就像这样:
50+
这里没有继承,只有一个简单的方法拷贝。因此,我们可以让 `User` 在继承另一个类的同时,使用 mixin 来 "mix-in"(混合)其它方法,就像这样:
5151

5252
```js
5353
class User extends Person {

1-js/10-error-handling/1-try-catch/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ try {
489489
1. 如果你对于 "Make an error?" 的回答是 "Yes",那么执行 `try -> catch -> finally`
490490
2. 如果你的回答是 "No",那么执行 `try -> finally`
491491

492-
`finally` 子句(clause)通常用在:当我们开始做某事的时候,希望无论出现什么情况都要完成完成某个任务
492+
`finally` 子句(clause)通常用在:当我们开始做某事的时候,希望无论出现什么情况都要完成某个任务
493493

494494
例如,我们想要测量一个斐波那契数字函数 `fib(n)` 执行所需要花费的时间。通常,我们可以在运行它之前开始测量,并在运行完成时结束测量。但是,如果在该函数调用期间出现 error 该怎么办?特别是,下面这段 `fib(n)` 的实现代码在遇到负数或非整数数字时会返回一个 error。
495495

@@ -565,7 +565,7 @@ alert( func() ); // 先执行 finally 中的 alert,然后执行这个 alert
565565

566566
````smart header="`try...finally`"
567567

568-
没有 `catch` 子句的 `try...finally` 结构也很有用。当我们不想在这儿处理 error(让它们 fall through),但是需要确保我们启动的处理需要被完成
568+
没有 `catch` 子句的 `try...finally` 结构也很有用。当我们不想在原地处理 error(让它们掉出去吧),但是需要确保我们启动的处理需要被完成时,我们应当使用它
569569

570570
```js
571571
function func() {
@@ -662,7 +662,7 @@ try {
662662

663663
Error 对象包含下列属性:
664664

665-
- `message` _ 人类可读的 error 信息。
665+
- `message` —— 人类可读的 error 信息。
666666
- `name` —— 具有 error 名称的字符串(Error 构造器的名称)。
667667
- `stack`(没有标准,但得到了很好的支持)—— Error 发生时的调用栈。
668668

1-js/10-error-handling/2-custom-errors/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ let json = `{ "name": "John", "age": 30 }`;
2323

2424
我们的 `ValidationError` 类应该继承自 `Error` 类。
2525

26-
`Error` 类是内建的,但这是其近似代码,所以我们可以了解我们要扩展的内容
26+
`Error` 类是内建的,但我们可以通过下面这段近似代码理解我们要扩展的内容
2727

2828
```js
2929
// JavaScript 自身定义的内建的 Error 类的“伪代码”
@@ -36,7 +36,7 @@ class Error {
3636
}
3737
```
3838

39-
现在让我们从其中继承 `ValidationError`,并尝试进行运行
39+
现在让我们从其中继承 `ValidationError` 试一试
4040

4141
```js run untrusted
4242
*!*

1-js/11-async/01-callbacks/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
但是,我们会尽全力使讲解变得更加清晰。在这儿不会有浏览器方面的真正复杂的东西。
1111
```
1212

13-
JavaScript 主机(host)环境提供了许多函数,这些函数允许我们计划 **异步** 行为(action)。换句话说,我们现在开始执行的行为,但它们会在稍后完成
13+
JavaScript 主机(host)环境提供了许多函数,这些函数允许我们计划 **异步** 行为(action)—— 也就是在我们执行一段时间后才自行完成的行为
1414

1515
例如,`setTimeout` 函数就是一个这样的函数。
1616

1-js/11-async/02-promise-basics/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ let promise = new Promise(function(resolve, reject) {
8383

8484
与最初的 "pending" promise 相反,一个 resolved 或 rejected 的 promise 都会被称为 "settled"。
8585

86-
````smart header="这只能有一个结果或一个 error"
86+
````smart header="只有一个结果或一个 error"
8787
executor 只能调用一个 `resolve` 或一个 `reject`。任何状态的更改都是最终的。
8888
8989
所有其他的再对 `resolve` 和 `reject` 的调用都会被忽略:
@@ -99,7 +99,7 @@ let promise = new Promise(function(resolve, reject) {
9999
});
100100
```
101101
102-
这的宗旨是,一个被 executor 完成的工作只能有一个结果或一个 error。
102+
关键就在于,一个由 executor 完成的工作只能有一个结果或一个 error。
103103
104104
并且,`resolve/reject` 只需要一个参数(或不包含任何参数),并且将忽略额外的参数。
105105
````
@@ -118,7 +118,7 @@ let promise = new Promise(function(resolve, reject) {
118118
});
119119
```
120120

121-
例如,当我们开始做一个任务时,但随后看到一切都已经完成并已被缓存时,可能就会发生这种情况。
121+
例如,当我们开始做一个任务,随后发现一切都已经完成并已被缓存时,可能就会发生这种情况。
122122

123123
这挺好。我们立即就有了一个 resolved 的 promise。
124124
````
@@ -294,7 +294,7 @@ new Promise((resolve, reject) => {
294294
// 下面这 promise 在被创建后立即变为 resolved 状态
295295
let promise = new Promise(resolve => resolve("done!"));
296296
297-
promise.then(alert); // done!(现在显示
297+
promise.then(alert); // done!(立刻显示
298298
```
299299
300300
请注意这使得 promise 比现实生活中的“订阅列表”方案强大得多。如果歌手已经发布了他们的单曲,然后某个人在订阅列表上进行了注册,则他们很可能不会收到该单曲。实际生活中的订阅必须在活动开始之前进行。
@@ -357,7 +357,7 @@ promise.then(script => alert('Another handler...'));
357357

358358
| promise | callback |
359359
|----------|-----------|
360-
| promise 允许我们按照自然顺序进行编码。首先,我们运行 `loadScript` `.then` 来处理结果。| 在调用 `loadScript(script, callback)` 时,我们必须有一个 `callback` 函数可供使用。换句话说,在调用 `loadScript` **之前**,我们必须知道如何处理结果。|
360+
| promise 允许我们按照自然顺序进行编码。首先,我们运行 `loadScript`,之后,用 `.then` 来处理结果。| 在调用 `loadScript(script, callback)` 时,我们必须有一个 `callback` 函数可供使用。换句话说,在调用 `loadScript` **之前**,我们必须知道如何处理结果。|
361361
| 我们可以根据需要,在 promise 上多次调用 `.then`。每次调用,我们都会在“订阅列表”中添加一个新的“粉丝”,一个新的订阅函数。在下一章将对此内容进行详细介绍:[](info:promise-chaining)| 只能有一个回调。|
362362

363363

1-js/11-async/05-promise-api/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,10 @@ Promise.all([
131131
]).then(render); // render 方法需要所有 fetch 的数据
132132
```
133133
134-
`Promise.allSettled` 等待所有的 promise 都被 settle,无论结果如何。结果数组具有
134+
`Promise.allSettled` 等待所有的 promise 都被 settle,无论结果如何。结果数组会是这样的
135135
136-
- `{status:"fulfilled", value:result}` 对于成功的响应
137-
- `{status:"rejected", reason:error}` 对于 error
136+
- 对成功的响应,结果数组对应元素的内容为 `{status:"fulfilled", value:result}`,
137+
- 对出现 error 的响应,结果数组对应元素的内容为 `{status:"rejected", reason:error}`。
138138
139139
例如,我们想要获取(fetch)多个用户的信息。即使其中一个请求失败,我们仍然对其他的感兴趣。
140140

0 commit comments

Comments
 (0)