Skip to content

Commit ef85598

Browse files
authored
Update the translation of 1-js/02-first-steps/17-javascript-specials (#542)
* Update article.md * Update article.md * Update article.md * Update article.md
1 parent 0057b1a commit ef85598

File tree

1 file changed

+58
-58
lines changed
  • 1-js/02-first-steps/17-javascript-specials

1 file changed

+58
-58
lines changed
Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# JavasScript 特性
22

3-
本章简要回顾我们到现在为止学到的 JavaScript 特性,特别注意一些细节
3+
本章简要回顾我们到现在为止学到的 JavaScript 特性,并特别注意了一些细节
44

55
## 代码结构
66

@@ -17,64 +17,64 @@ alert('Hello')
1717
alert('World')
1818
```
1919

20-
这就是所谓的「自动分号插入」。有时它不起作用,例如:
20+
这就是所谓的「自动分号插入」。但有时它不起作用,例如:
2121

2222
```js run
2323
alert("There will be an error after this message")
2424

2525
[1, 2].forEach(alert)
2626
```
2727

28-
大多数代码风格指南都认为我们应该在每个语句后面加上分号
28+
大多数代码风格指南都认为我们应该在每个语句后面都加上分号
2929

30-
在代码块 `{...}` 之后以及循环语句后不需要使用分号
30+
在代码块 `{...}` 后以及有代码块的语法结构(例如循环)后不需要加分号
3131

3232
```js
3333
function f() {
34-
//函数声明后不需要分号
34+
// 函数声明后不需要加分号
3535
}
3636

3737
for(;;) {
38-
 //循环语句后不需要分号
38+
// 循环语句后不需要加分号
3939
}
4040
```
4141

42-
……但即使我们可以在某处添加了「额外」分号,这也不是错误。它会被忽略的
42+
……但即使我们在某处添加了「额外的」分号,这也不是错误。分号会被忽略的
4343

44-
更多信息<info:structure>
44+
更多内容<info:structure>
4545

4646
## 严格模式
4747

48-
为了完全启用现代 JavaScript 的所有功能,我们应该使用 `"use strict"` 指令。
48+
为了完全启用现代 JavaScript 的所有特性,我们应该在脚本顶部写上 `"use strict"` 指令。
4949

5050
```js
5151
'use strict';
5252

5353
...
5454
```
5555

56-
该指令必须位于 JavaScript 文件的顶部或函数体的开头
56+
该指令必须位于 JavaScript 脚本的顶部或函数体的开头
5757

58-
如果没有 `"use strict"`,所有东西仍可以正常工作,但是某些特性的表现方式与旧式「兼容」方式相同。我们通常喜欢更现代的方式
58+
如果没有 `"use strict"`,所有东西仍可以正常工作,但是某些特性的表现方式与旧式「兼容」方式相同。我们通常更喜欢现代的方式
5959

6060
语言的一些现代特征(比如我们将来要学习的类)会隐式地启用严格模式。
6161

62-
更多信息<info:strict-mode>
62+
更多内容<info:strict-mode>
6363

6464
## 变量
6565

6666
可以使用以下方式声明变量:
6767

6868
- `let`
69-
- `const` (固定的,不能被改变)
69+
- `const`(不变的,不能被改变
7070
- `var`(旧式的,稍后会看到)
7171

72-
一个合格的变量名可以由以下组成
73-
- 字符串和数字,但是第一个字符不能是数字。
72+
一个变量名可以由以下组成
73+
- 字母和数字,但是第一个字符不能是数字。
7474
- 字符 `$``_` 是允许的,用法同字母。
7575
- 非拉丁字母和象形文字也是允许的,但通常不会使用。
7676

77-
变量的值可以动态改变数据类型,它们可以存储任何值:
77+
变量是动态类型的,它们可以存储任何值:
7878

7979
```js
8080
let x = 5;
@@ -83,35 +83,35 @@ x = "John";
8383

8484
有 7 种数据类型:
8585

86-
- `number` 可以是浮点数,也可以是整数,
87-
- `string` 字符串类型,
88-
- `boolean` 逻辑值: `true/false`
89-
- `null` 具有单个值 `null` 的类型,表示”空“或“不存在”,
90-
- `undefined`— 一个具有单个值 `undefined` 的类型,表示未分配
91-
- `object``symbol` 对于复杂的数据结构和唯一标识符,我们目前还没学习这个类型。
86+
- `number` — 可以是浮点数,也可以是整数,
87+
- `string` — 字符串类型,
88+
- `boolean` — 逻辑值`true/false`
89+
- `null` — 具有单个值 `null` 的类型,表示“空”或“不存在”,
90+
- `undefined` 具有单个值 `undefined` 的类型,表示未分配(未定义)”
91+
- `object``symbol` — 对于复杂的数据结构和唯一标识符,我们目前还没学习这个类型。
9292

9393
`typeof` 运算符返回值的类型,但有两个例外:
9494
```js
95-
typeof null == "object" // 语言的设计错误
95+
typeof null == "object" // JavaScript 编程语言的设计错误
9696
typeof function(){} == "function" // 函数被特殊对待
9797
```
9898

99-
更多信息<info:variables><info:types>
99+
更多内容<info:variables><info:types>
100100

101101
## 交互
102102

103103
我们使用浏览器作为工作环境,所以基本的 UI 功能将是:
104104

105105
[`prompt(question[, default])`](mdn:api/Window/prompt)
106-
: 询问一个问题,并返回访问者输入的内容,如果他按下「取消」则返回 `null`
106+
: 提出一个问题,并返回访问者输入的内容,如果他按下「取消」则返回 `null`
107107

108108
[`confirm(question)`](mdn:api/Window/confirm)
109-
: 提出一个问题,并建议在确定和取消之间进行选择。该选项以 `true/false` 形式返回。
109+
: 提出一个问题,并建议用户在“确定”和“取消”之间进行选择。选择结果以 `true/false` 形式返回。
110110

111111
[`alert(message)`](mdn:api/Window/alert)
112112
: 输出一个 `消息`
113113

114-
所有这些函数都会产生**模态框**它们会暂停代码执行并阻止访问者与页面交互,直到用户输入内容
114+
这些函数都会产生 **模态框**它们会暂停代码执行并阻止访问者与页面的其他部分进行交互,直到用户做出回答为止
115115

116116
举个例子:
117117

@@ -123,56 +123,56 @@ alert( "Visitor: " + userName ); // Alice
123123
alert( "Tea wanted: " + isTeaWanted ); // true
124124
```
125125

126-
更多信息<info:alert-prompt-confirm>
126+
更多内容<info:alert-prompt-confirm>
127127

128128
## 运算符
129129

130130
JavaScript 支持以下运算符:
131131

132132
算数运算符
133-
: 常规的比如`+ - * /`(加减乘除),以及取余操作 `%` 和幂运算符 `**`
133+
: 常规的`+ - * /`(加减乘除),取余运算符 `%` 和幂运算符 `**`
134134

135-
二进制加 `+` 连接字符串。如果任何一个操作数是一个字符串,另一个操作数也将转换为字符串
135+
二进制加号 `+` 可以连接字符串。如果任何一个操作数是一个字符串,那么另一个操作数也将被转换为字符串
136136

137137
```js run
138-
alert( '1' + 2 ); // '12', 字符串
139-
alert( 1 + '2' ); // '12', 字符串
138+
alert( '1' + 2 ); // '12'字符串
139+
alert( 1 + '2' ); // '12'字符串
140140
```
141141

142142
赋值
143-
: 简单的赋值:`a = b` 和连续赋值`a * = 2`
143+
: 简单的赋值:`a = b` 和合并了其他操作的赋值`a * = 2`
144144

145-
按位操作
146-
: 位运算符在位级上使用整数:当需要时,请参阅 [docs](mdn:/JavaScript/Reference/Operators/Bitwise_Operators)
145+
按位操作符
146+
: 按位运算符在最低位级上操作 32 位的整数:详见 [文档](mdn:/JavaScript/Reference/Operators/Bitwise_Operators)
147147

148-
三元运算
148+
三元运算符
149149
: 唯一具有三个参数的操作:`cond ? resultA : resultB`。如果 `cond` 是真的,则返回 `resultA`,否则返回 `resultB`
150150

151151
逻辑运算符
152-
: 逻辑与 `&&` 和或 `||` 执行短路计算,然后返回停止时的值(并不需要 `true`/`false`)。逻辑非 `!` 将操作数转换为布尔值并返回其相反的值。
152+
: 逻辑与 `&&` 和或 `||` 执行短路运算,然后返回运算停止处的值(`true`/`false` 不是必须的)。逻辑非 `!` 将操作数转换为布尔值并返回其相反的值。
153153

154154
比较运算符
155-
: 运算符 `==` 将不同类型的值转换为一个数字(除了 `null``undefined`它们彼此相等而没有别的情况),所以下面的例子是相等的:
155+
: 对不同类型的值进行相等检查时,运算符 `==` 会将不同类型的值转换为数字(除了 `null``undefined`它们彼此相等而没有其他情况),所以下面的例子是相等的:
156156

157157
```js run
158158
alert( 0 == false ); // true
159159
alert( 0 == '' ); // true
160160
```
161161

162-
其他比较也转换为数字
162+
其他比较也将转换为数字
163163

164164
严格相等运算符 `===` 不会进行转换:不同的类型总是指不同的值。
165165

166-
值 `null` 和 `undefined` 是特殊的:它们只在 `==` 下相等,不相等于其他值
166+
值 `null` 和 `undefined` 是特殊的:它们只在 `==` 下相等,且不相等于其他任何值
167167

168-
字符串按照字符顺序逐一比较,其他类型转换为数字
168+
大于/小于比较,在比较字符串时,会按照字符顺序逐个字符地进行比较。其他类型则被转换为数字
169169

170-
逻辑运算符
171-
: 其他运算符比较少,如逗号运算符。
170+
其他运算符
171+
: 还有很少一部分其他运算符,如逗号运算符。
172172

173-
更多信息<info:operators><info:comparison><info:logical-operators>
173+
更多内容<info:operators><info:comparison><info:logical-operators>
174174

175-
## 循环语句
175+
## 循环
176176

177177
- 我们涵盖了 3 种类型的循环:
178178

@@ -193,16 +193,16 @@ JavaScript 支持以下运算符:
193193
}
194194
```
195195

196-
-`for(let...)` 循环中声明的变量只在循环中可见。但是我们也可以省略 `let` 并重用现有的变量
196+
-`for(let...)` 循环内部声明的变量,只在该循环内可见。但我们也可以省略 `let` 并重用已有的变量
197197
- 指令 `break/continue` 允许退出整个循环/当前迭代。使用标签来打破嵌套循环。
198198

199-
详情参见<info:while-for>
199+
更多内容<info:while-for>
200200

201-
稍后我们将学习更多类型的循环语句来处理事物
201+
稍后我们将学习更多类型的循环来处理对象
202202

203203
## "switch" 结构
204204

205-
"switch" 结构可以替代多个 `if` 检查它内部使用 `===`(严格相等)进行比较。
205+
"switch" 结构可以替代多个 `if` 检查它内部使用 `===`(严格相等)进行比较。
206206

207207
例如:
208208

@@ -211,7 +211,7 @@ let age = prompt('Your age?', 18);
211211
212212
switch (age) {
213213
case 18:
214-
alert("Won't work"); // 提示的结果是一个字符串,而不是数字
214+
alert("Won't work"); // prompt 的结果是一个字符串,而不是数字
215215
216216
case "18":
217217
alert("This works!");
@@ -222,11 +222,11 @@ switch (age) {
222222
}
223223
```
224224

225-
详情参见<info:switch>。
225+
详情请见<info:switch>。
226226

227227
## 函数
228228

229-
我们介绍了三种在 JavaScript 中创建函数的方法
229+
我们介绍了三种在 JavaScript 中创建函数的方式
230230

231231
1. 函数声明:主代码流中的函数
232232

@@ -254,7 +254,7 @@ switch (age) {
254254
// 表达式在右侧
255255
let sum = (a, b) => a + b;
256256
257-
// 或带 {...} 的多行语法,需要此处返回
257+
// 或带 {...} 的多行语法,此处需要 return
258258
let sum = (a, b) => {
259259
// ...
260260
return a + b;
@@ -268,12 +268,12 @@ switch (age) {
268268
```
269269

270270

271-
- 函数可能具有局部变量:在其内部声明的变量。这些变量只在函数内部可见
271+
- 函数可能具有局部变量:在函数内部声明的变量。这类变量只在函数内部可见
272272
- 参数可以有默认值:`function sum(a = 1, b = 2) {...}`
273-
- 函数总是返回一些东西。如果没有 `return` 语句,那么结果是 `undefined`
273+
- 函数总是返回一些东西。如果没有 `return` 语句,那么返回的结果是 `undefined`
274274

275-
更多:参见 <info:function-basics>,<info:arrow-functions-basics>。
275+
详细内容:请见 <info:function-basics>,<info:arrow-functions-basics>。
276276

277-
## 更多
277+
## 更多内容
278278

279-
这是 JavaScript 功能的简要概述。截至目前,我们只研究基础知识。随着教程的深入,您会发现更多特殊功能和 JavaScript 高级功能
279+
这些是 JavaScript 特性的简要概述。截至目前,我们仅仅学习了基础知识。随着教程的深入,你会发现 JavaScript 的更多特性和高级特性

0 commit comments

Comments
 (0)