Skip to content

Commit 24f8de7

Browse files
committed
Translation[CN]: numbers & strings
1 parent 8bb1e4c commit 24f8de7

File tree

12 files changed

+1007
-0
lines changed

12 files changed

+1007
-0
lines changed

cn/numbers/README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
layout: editorial
3+
chapter: 3
4+
pageNumber: 18
5+
description: Numbers refer to the data type used to represent numeric values. Numbers in JavaScript can be either integers (whole numbers) or floating-point numbers (decimal numbers)
6+
---
7+
8+
# 第3章
9+
10+
# 数字
11+
12+
JavaScript 只有**一种数值类型**——64 位浮点数。这与 Java 的 `double` 相同。不同于大多数其他编程语言,它没有单独的整数类型,所以 1 和 1.0 是相同的值。创建一个数值很容易,就像为其他变量类型那样使用 `var` 关键字即可。
13+
14+
数值可以由常量创建:
15+
16+
```javascript
17+
// 这是一个浮点数:
18+
let a = 1.2;
19+
20+
// 这是一个整数:
21+
let b = 10;
22+
```
23+
24+
也可以由另一个变量的值创建:
25+
26+
```javascript
27+
let a = 2;
28+
let b = a;
29+
```
30+
31+
整数的精度可精确到 15 位,且最大可表示的有效数字约为 17 位。
32+
33+
```javascript
34+
let x = 999999999999999; // x 将是 999999999999999
35+
let y = 9999999999999999; // y 将是 10000000000000000
36+
```
37+
38+
如果数值常量以前缀 `0x` 开头,则会被解释为十六进制。
39+
40+
```javascript
41+
let z = 0xFF; // 255
42+
```
43+
44+
在本章中,我们将探讨以下主题:
45+
46+
* [数学](./math.md)
47+
* [基本运算符](./operators.md)
48+
* [高级运算符](./advanced.md)

cn/numbers/advanced.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
chapter: 3
3+
pageNumber: 28
4+
description: There are several advanced operators that provide powerful functionality and allow us to perform various operations beyond basic arithmetic and logical operations. These advanced operators can be very helpful for manipulating data, performing bitwise operations, working with objects, and more.
5+
---
6+
7+
# 高级运算符
8+
9+
当多个运算符在没有使用括号的情况下连在一起时,它们的执行顺序由运算符的 *优先级* 决定。乘法 `(*)` 与除法 `(/)` 的优先级高于加法 `(+)` 与减法 `(-)`
10+
11+
```javascript
12+
// 先进行乘法运算,然后再进行加法
13+
let x = 100 + 50 * 3; // 250
14+
// 使用括号时,括号中的运算会优先计算
15+
let y = (100 + 50) * 3; // 450
16+
// 拥有相同优先级的运算会从左到右依次计算
17+
let z = 100 / 50 * 3;
18+
```
19+
20+
在编写程序时,可以使用若干高级数学运算符。下面列出了一些主要的高级数学运算符:
21+
22+
* **取模运算符 (`%`)**:取模运算符返回除法运算的余数。例如:
23+
24+
```javascript
25+
console.log(10 % 3); // 1
26+
console.log(11 % 3); // 2
27+
console.log(12 % 3); // 0
28+
```
29+
30+
* **幂运算符 (* *)**:幂运算符将一个数字提升为另一个数字的幂。它是一个较新的运算符,并未被所有浏览器支持,因此你可能需要使用 `Math.pow` 函数来代替。例如:
31+
32+
```javascript
33+
console.log(2 ** 3); // 8
34+
console.log(3 ** 2); // 9
35+
console.log(4 ** 3); // 64
36+
```
37+
38+
* **自增运算符 (`++`)**:自增运算符将数字加一。它可以作为前缀(在操作数前)或后缀(在操作数后)使用。例如:
39+
40+
```javascript
41+
let x = 1;
42+
x++; // x 现在是 2
43+
++x; // x 现在是 3
44+
```
45+
46+
* **自减运算符 (`--`)**:自减运算符将数字减一。它可以作为前缀(在操作数前)或后缀(在操作数后)使用。例如:
47+
48+
```javascript
49+
let y = 3;
50+
y--; // y 现在是 2
51+
--y; // y 现在是 1
52+
```
53+
54+
* **Math 对象**`Math` 对象是 JavaScript 中的内置对象,提供了数学函数和常量。你可以使用 `Math` 对象的方法来执行高级数学运算,例如求一个数的平方根、计算一个数的正弦值或生成一个随机数。例如:
55+
56+
```javascript
57+
console.log(Math.sqrt(9)); // 3
58+
console.log(Math.sin(0)); // 0
59+
console.log(Math.random()); // 0 到 1 之间的随机数
60+
```
61+
62+
这些只是 JavaScript 中可用的高级数学运算符和函数的一些例子。还有很多其它的运算符和函数可以在编写程序时用于执行更复杂的数学运算。
63+
64+
{% exercise %}
65+
使用以下高级运算符对 `num1``num2` 进行运算。
66+
67+
{% initial %}
68+
let num1 = 10;
69+
let num2 = 5;
70+
71+
// 使用 ++ 运算符将 num1 的值加一。
72+
const result1 =
73+
// 使用 -- 运算符将 num2 的值减一。
74+
const result2 =
75+
// 使用 += 运算符将 num2 加到 num1 上。
76+
const result3 =
77+
// 使用 -= 运算符将 num2 从 num1 中减去。
78+
const result4 =
79+
80+
{% solution %}
81+
let num1 = 10;
82+
let num2 = 5;
83+
84+
// 使用 ++ 运算符将 num1 的值加一。
85+
num1++;
86+
const result1 = num1; // 11
87+
// 使用 -- 运算符将 num2 的值减一。
88+
num2--;
89+
const result2 = num2; // 4
90+
// 使用 += 运算符将 num2 加到 num1 上。
91+
num1 += num2;
92+
const result3 = num1 // 15
93+
// 使用 -= 运算符将 num2 从 num1 中减去。
94+
num1 -= num2;
95+
const result4 = num1 // 11
96+
97+
{% validation %}
98+
assert(result1 === 11 && result2 === 4 && result3 === 15 && result4 === 11 );
99+
100+
{% context %}
101+
{% endexercise %}
102+
103+
## 空值合并运算符 '??'
104+
105+
`nullish` 合并运算符会在第一个参数不是 `null/undefined` 时返回第一个参数,否则返回第二个参数。它写作连续两个问号 `??`。表达式 `x ?? y` 的结果是:
106+
107+
* 如果 `x` 已被定义,则结果为 `x`
108+
* 否则结果为 `y`
109+
110+
{% hint style="info" %}
111+
这是对该语言的一个较新的扩展,为了在旧浏览器中支持它,可能需要使用 polyfill。
112+
{% endhint %}

cn/numbers/math.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
chapter: 3
3+
pageNumber: 19
4+
description: The Math object allows performing mathematical operations in JavaScript. It is static and doesn't have a constructor. One can use method and properties of Math object without creating a Math object first.
5+
---
6+
7+
# 数学
8+
9+
`Math` 对象用于在 JavaScript 中执行数学运算。它是静态的,没有构造函数。无需先创建一个 Math 对象即可使用其方法和属性。要访问它的属性,可以使用 *Math.property.*。下面描述了一些数学属性:
10+
11+
```javascript
12+
Math.E; // 返回欧拉常数
13+
Math.PI; // 返回圆周率
14+
Math.SQRT2; // 返回 2 的平方根
15+
Math.SQRT1_2; // 返回 1/2 的平方根
16+
Math.LN2; // 返回 2 的自然对数
17+
Math.LN10; // 返回 10 的自然对数
18+
Math.LOG2E; // 返回以 2 为底的 E 的对数
19+
Math.LOG10E; // 返回以 10 为底的 E 的对数
20+
```
21+
22+
一些数学方法的示例:
23+
24+
```javascript
25+
Math.pow(8, 2); // 64
26+
Math.round(4.6); // 5
27+
Math.ceil(4.9); // 5
28+
Math.floor(4.9); // 4
29+
Math.trunc(4.9); // 4
30+
Math.sign(-4); // -1
31+
Math.sqrt(64); // 8
32+
Math.abs(-4.7); // 4.7
33+
Math.sin((90 * Math.PI) / 180); // 1(90 度的正弦)
34+
Math.cos((0 * Math.PI) / 180); // 1(0 度的余弦)
35+
Math.min(0, 150, 30, 20, -8, -200); // -200
36+
Math.max(0, 150, 30, 20, -8, -200); // 150
37+
Math.random(); // 0.44763808380924375
38+
Math.log(2); // 0.6931471805599453
39+
Math.log2(8); // 3
40+
Math.log10(1000); // 3
41+
```
42+
43+
要使用数学方法,可以在需要的地方直接带上参数调用其方法。
44+
45+
| 方法 | 描述 |
46+
| ------------------ | -------------------------------------------------------------- |
47+
| `abs(x)` | 返回 `x` 的绝对值 |
48+
| `acos(x)` | 返回 `x` 的反余弦,单位为弧度 |
49+
| `acosh(x)` | 返回 `x` 的反双曲余弦 |
50+
| `asin(x)` | 返回 `x` 的反正弦,单位为弧度 |
51+
| `asinh(x)` | 返回 `x` 的反双曲正弦 |
52+
| `atan(x)` | 以数值形式返回 `x` 的反正切,范围在 `-PI/2``PI/2` 弧度之间 |
53+
| `atan2(y,x)` | 返回其参数商的反正切 |
54+
| `atanh(x)` | 返回 `x` 的反双曲正切 |
55+
| `crbt(x)` | 返回 `x` 的立方根 |
56+
| `ceil(x)` |`x` 向上取整到最接近的整数 |
57+
| `cos(x)` | 返回 `x` 的余弦,单位为弧度 |
58+
| `cosh(x)` | 返回 `x` 的双曲余弦 |
59+
| `exp(x)` | 返回 `x` 的指数值 |
60+
| `floor(x)` |`x` 向下取整到最接近的整数 |
61+
| `log(x)` | 返回 `x` 的自然对数 |
62+
| `max(x,y,z,... n)` | 返回值最大的那个数 |
63+
| `min(x,y,z,... n)` | 返回值最小的那个数 |
64+
| `pow(x,y)` | 返回 `x``y` 次幂 |
65+
| `random()` | 返回 0 到 1 之间的数 |
66+
| `round(x)` | 将数字四舍五入到最接近的值 |
67+
| `sign(x)` | 返回 x 是负、`null` 还是正 (-1,0,1) |
68+
| `sin(x)` | 返回 `x` 的正弦,单位为弧度 |
69+
| `sinh(x)` | 返回 `x` 的双曲正弦 |
70+
| `sqrt(x)` | 返回 `x` 的平方根 |
71+
| `tan(x)` | 返回一个角的正切 |
72+
| `tanh(x)` | 返回 `x` 的双曲正切 |
73+
| `trunc(x)` | 返回一个数(`x`)的整数部分 |

0 commit comments

Comments
 (0)