Skip to content

Commit 9240c01

Browse files
authored
Update translation of 1-js/05-data-types/02-number, 07-map-set/article.md etc. (#713)
Update translation of 1-js/05-data-types/02-number, 07-map-set/article.md etc. (#713)
1 parent 968eca1 commit 9240c01

File tree

16 files changed

+220
-215
lines changed

16 files changed

+220
-215
lines changed

1-js/05-data-types/01-primitives-methods/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ alert( str.toUpperCase() ); // HELLO
7272

7373
JavaScript 引擎高度优化了这个过程。它甚至可能跳过创建额外的对象。但是它仍然必须遵守规范,并且表现得好像它创建了一样。
7474

75-
数字有其自己的方法,例如,[toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) 将数字四舍五入到给定的精度
75+
数字有其自己的方法,例如,[toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) 将数字舍入到给定的精度
7676

7777
```js run
7878
let n = 1.23456;

1-js/05-data-types/02-number/1-sum-interface/solution.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ let b = +prompt("The second number?", "");
77
alert( a + b );
88
```
99

10-
注意一元符号 `+``prompt` 前面。它会把获取的值转换成数字
10+
注意在 `prompt` 前面的一元加号 `+`。它将立即把值转换成数字
1111

12-
否则,`a``b` 会是字符串,它们的总和就是它们的连接,即:`“1”+“2”=“12”`
12+
否则,`a``b` 将会是字符串,它们的总和将是它们的连接,即:`"1" + "2" = "12"`

1-js/05-data-types/02-number/1-sum-interface/task.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ importance: 5
22

33
---
44

5-
# 来自访客的总数
5+
# 来自访问者的数字的总和
66

77
创建一个脚本,提示访问者输入两个数字,然后显示它们的总和。
88

99
[demo]
1010

11-
提示:类型会有一个问题
11+
P.S. 有一个类型陷阱
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
1-
`6.35` 内部,小数部分是一个无限的二进制。在这种情况下,它存储的时候有一个精度的缺失
1+
在内部,`6.35` 的小数部分是一个无限的二进制。在这种情况下,它的存储会造成精度损失
22

33
让我们来看看:
44

55
```js run
66
alert( 6.35.toFixed(20) ); // 6.34999999999999964473
77
```
88

9-
精度缺失可能会导致数字的增加和减小。在这种特殊情况下,数字可能会变小了一点,这就是为什么它减小了
9+
精度损失可能会导致数字的增加和减小。在这种特殊的情况下,数字变小了一点,这就是它向下舍入的原因
1010

11-
那么 `1.35` 是怎样的呢
11+
那么 `1.35` 会怎样呢
1212

1313
```js run
1414
alert( 1.35.toFixed(20) ); // 1.35000000000000008882
1515
```
1616

17-
在这里,精度缺失使得这个数字更大一些,所以这个数字变大了一些
17+
在这里,精度损失使得这个数字稍微大了一些,因此其向上舍入
1818

19-
**如果我们希望以正确的方式四舍五入,我们如何使用 `6.35` 为例来解决这个问题**
19+
**如果我们希望以正确的方式进行舍入,我们应该如何解决 `6.35` 的舍入问题呢**
2020

21-
在四舍五入之前,我们应该把它接近整数
21+
在进行舍入前,我们应该使其更接近整数
2222

2323
```js run
2424
alert( (6.35 * 10).toFixed(20) ); // 63.50000000000000000000
2525
```
2626

27-
请注意 `63.5` 完全没有精度缺失。这是因为小数部分 `0.5` 实际上是 `1 / 2`除以2的幂的分数在二进制系统中被精确地表示,现在我们可以围绕它来解决问题
27+
请注意`63.5` 完全没有精度损失。这是因为小数部分 `0.5` 实际上是 `1/2`以 2 的整数次幂为分母的小数在二进制数字系统中可以被精确地表示,现在我们可以对它进行舍入
2828

2929

3030
```js run
3131
alert( Math.round(6.35 * 10) / 10); // 6.35 -> 63.5 -> 64(rounded) -> 6.4
3232
```
33+

1-js/05-data-types/02-number/2-why-rounded-down/task.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ importance: 4
44

55
# 为什么 6.35.toFixed(1) == 6.3?
66

7-
根据文档 `Math.round``toFixed`,最近的数字四舍五入`0..4` 会被舍去,而 `5..9` 会前进一位
7+
根据文档`Math.round``toFixed` 都将数字舍入到最接近的数字`0..4` 会被舍去,而 `5..9` 会进一位
88

99
例如:
1010

1111
```js run
1212
alert( 1.35.toFixed(1) ); // 1.4
1313
```
1414

15-
在下面的类似例子中,为什么 `6.35` 被四舍五入为 `6.3` 而不是 `6.4`
15+
在下面这个类似的示例中,为什么 `6.35` 被舍入为 `6.3` 而不是 `6.4`
1616

1717
```js run
1818
alert( 6.35.toFixed(1) ); // 6.3
1919
```
2020

21-
如何以正确的方式来四舍五入 `6.35`
21+
如何以正确的方式来对 `6.35` 进行舍入?
22+

1-js/05-data-types/02-number/3-repeat-until-number/solution.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ function readNumber() {
1515
alert(`Read: ${readNumber()}`);
1616
```
1717

18-
该解决方案有点复杂,可能是因为我们需要处理 null/空行
18+
该解决方案有点复杂,因为我们需要处理 `null` 和空行
1919

20-
所以我们实际上接受输入,直到它成为“常规数字”。null(取消)和空行都适合该条件,因为在数字形式中它们是 `0`
20+
所以,我们实际上接受输入,直到输入的是一个“常规数字”。`null`(取消)和空行都符合该条件,因为在数字形式中它们是 `0`
21+
22+
在我们停止之后,我们需要专门处理 `null` 和空行(返回 `null`),因为将它们转换为数字将返回 `0`
2123

22-
在我们停止之后,我们需要专门处理 null 和空行(返回 null),因为将它们转换为数字将返回 `0`

1-js/05-data-types/02-number/3-repeat-until-number/task.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ importance: 5
22

33
---
44

5-
# 重复检测,直到输入是一个数字
5+
# 重复,直到输入的是一个数字
66

7-
创建一个函数 `readNumber`,它提示输入一个数字,直到访问者输入一个有效的数字
7+
创建一个函数 `readNumber`,它提示输入一个数字,直到访问者输入一个有效的数字为止
88

9-
结果值必须作为数字返回
9+
结果值必须以数字形式返回
1010

11-
访问者也可以通过输入空行或按“取消”来停止该过程。在这种情况下,函数应该返回 `null`
11+
访问者也可以通过输入空行或点击“取消”来停止该过程。在这种情况下,函数应该返回 `null`
1212

1313
[demo]
14+
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
那是因为 `i` 永远不会等于 `10`
22

3-
运行它以查看 `i` 的实际值
3+
运行下面这段代码来查看 `i` **实际**
44

55
```js run
66
let i = 0;
@@ -10,8 +10,8 @@ while (i < 11) {
1010
}
1111
```
1212

13-
他们中没有一个完全是 `10`
13+
它们中没有一个恰好是 `10`
1414

15-
发生这样的事情是因为在添加像 `0.2` 这样的分数时出现了精度损失
15+
之所以发生这种情况,是因为对 `0.2` 这样的小数时进行加法运算时出现了精度损失
1616

17-
结论:在处理小数部分时避免相等检查
17+
结论:在处理小数时避免相等性检查

1-js/05-data-types/02-number/4-endless-loop-error/task.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 4
44

55
# 一个偶发的无限循环
66

7-
这个循环是无限的。它永远不会结束。为什么?
7+
这是一个无限循环。它永远不会结束。为什么?
88

99
```js
1010
let i = 0;

1-js/05-data-types/02-number/8-random-min-max/solution.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
我们需要将区间 0..1 中的所有值“映射”为从最小值到最大值
1+
我们需要将区间 0..1 中的所有值“映射”为范围在 `min``max` 中的值
22

33
这可以分两个阶段完成:
44

5-
1. 如果我们将 0..1 的随机数乘以 `max-min`则可能值的间隔从 0..1 增加到 `0..max-min`
6-
2. 现在,如果我们添加 `min`,则可能的间隔将从 `min` 变为 `max`
5+
1. 如果我们将 0..1 的随机数乘以 `max-min`则随机数的范围将从 0..1 增加到 `0..max-min`
6+
2. 现在,如果我们将随机数与 `min` 相加,则随机数的范围将为 `min` `max`
77

88
函数实现:
99

@@ -16,3 +16,4 @@ alert( random(1, 5) );
1616
alert( random(1, 5) );
1717
alert( random(1, 5) );
1818
```
19+

1-js/05-data-types/02-number/8-random-min-max/task.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ importance: 2
22

33
---
44

5-
# 从最小到最大的随机数
5+
# 从 min 到 max 的随机数
66

7-
用内置函数Math.random() 创建一个从 01 的随机值(不包括 1 )
7+
内建函数 `Math.random()` 会创建一个在 `0``1` 之间(不包括 `1`)的随机数
88

9-
编写随机函数(minmax)以生成从最小到最大(不包括最大值)的随机浮点数
9+
编写一个 `random(min, max)` 函数,用以生成一个在 `min``max` 之间的随机浮点数(不包括 `max`))
1010

11-
实例
11+
运行示例
1212

1313
```js
1414
alert( random(1, 5) ); // 1.2345623452

1-js/05-data-types/02-number/9-random-int-min-max/solution.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 简单但错误的解决方案
22

3-
最简单但错误的解决方案是从 `min``max` 生成一个值并取它四舍五入的值
3+
最简单但错误的解决方案是生成一个范围在 `min``max` 的值,并取对其进行四舍五入后的值
44

55
```js run
66
function randomInteger(min, max) {
@@ -11,11 +11,11 @@ function randomInteger(min, max) {
1111
alert( randomInteger(1, 3) );
1212
```
1313

14-
这个函数是能起作用的,但不正确。获得边缘值 `min``max` 的概率是其他值的两倍
14+
这个函数是能起作用的,但不正确。获得边缘值 `min``max` 的概率比其他值低两倍
1515

16-
如果你多次运行这个例子,你会很容易看到 `2` 出现的频率最高。
16+
如果你将上面这个例子运行多次,你会很容易看到 `2` 出现的频率最高。
1717

18-
发生这种情况是因为 `Math.round()` 从间隔 `1..3` 获得随机数并按如下所示进行四舍五入
18+
发生这种情况是因为 `Math.round()` 从范围 `1..3` 中获得随机数,并按如下所示进行四舍五入
1919

2020
```js no-beautify
2121
values from 1 ... to 1.4999999999 become 1
@@ -27,12 +27,12 @@ values from 2.5 ... to 2.9999999999 become 3
2727

2828
# 正确的解决方案
2929

30-
这项任务有很多正确的解决方案。其中之一是调整间隔边界。为了确保相同的时间间隔,我们可以生成从 0.5 到 3.5 的值,从而将所需的概率添加到边缘
30+
这个题目有很多正确的解决方案。其中之一是调整取值范围的边界。为了确保相同的取值范围,我们可以生成从 0.5 到 3.5 的值,从而将所需的概率添加到取值范围的边界
3131

3232
```js run
3333
*!*
3434
function randomInteger(min, max) {
35-
// now rand is from (min-0.5) to (max+0.5)
35+
// 现在范围是从 (min-0.5) (max+0.5)
3636
let rand = min - 0.5 + Math.random() * (max - min + 1);
3737
return Math.round(rand);
3838
}
@@ -41,7 +41,7 @@ function randomInteger(min, max) {
4141
alert( randomInteger(1, 3) );
4242
```
4343

44-
另一种方法是使用 `Math.floor` 作为从 `min``max+1` 的随机数:
44+
另一种方法是使用 `Math.floor` 来取范围从 `min``max+1` 的随机数:
4545

4646
```js run
4747
*!*
@@ -63,4 +63,4 @@ values from 2 ... to 2.9999999999 become 2
6363
values from 3 ... to 3.9999999999 become 3
6464
```
6565

66-
所有间隔的长度相同,所以最终能够均匀分配。所有整数出现的概率都相同了
66+
所有间隔的长度相同,从而使最终能够均匀分配

1-js/05-data-types/02-number/9-random-int-min-max/task.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ importance: 2
22

33
---
44

5-
# 从最小到最大的随机整数
5+
# 从 min 到 max 的随机整数
66

7-
创建一个函数 `randomInteger(min,max)`该函数从 `min``max` 生成随机整数,包括 `min``max` 作为可能值
7+
创建一个函数 `randomInteger(min,max)`该函数会生成一个范围在 `min``max` 中的随机整数,包括 `min``max`
88

9-
来自间隔 `min..max` 的任何数字必须以相同的概率出现
9+
`min..max` 范围中的所有数字的出现概率必须相同
1010

1111

12-
功能示例
12+
运行示例
1313

1414
```js
15-
alert( random(1, 5) ); // 1
16-
alert( random(1, 5) ); // 3
17-
alert( random(1, 5) ); // 5
15+
alert( randomInteger(1, 5) ); // 1
16+
alert( randomInteger(1, 5) ); // 3
17+
alert( randomInteger(1, 5) ); // 5
1818
```
1919

20-
您可以使用[上一个任务](info:task/random-min-max)的解决方案作为基础。
20+
你可以使用 [上一个任务](info:task/random-min-max) 的解决方案作为基础。

0 commit comments

Comments
 (0)