File tree 2 files changed +6
-6
lines changed
1-js/06-advanced-functions
2 files changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ pow(2, 4) = 16
28
28
function pow (x , n ) {
29
29
let result = 1 ;
30
30
31
- // 再循环中 ,用 x 乘以 result n 次
31
+ // 在循环中 ,用 x 乘以 result n 次
32
32
for (let i = 0 ; i < n; i++ ) {
33
33
result *= x;
34
34
}
@@ -338,10 +338,10 @@ let company = {
338
338
339
339
我们可以看到,当我们的函数对一个部门求和时,有两种可能的情况:
340
340
341
- 1. 要么是由一 ** 数组** 的人组成的 “简单”的部门 —— 这样我们就可以通过一个简单的循环来计算薪资的总和。
341
+ 1. 要么是由一个人员 ** 数组** 构成的 “简单”的部门 —— 这样我们就可以通过一个简单的循环来计算薪资的总和。
342
342
2. 或者它是一个有 ` N` 个子部门的 ** 对象** —— 那么我们可以通过 ` N` 层递归调用来求每一个子部门的薪资,然后将它们合并起来。
343
343
344
- 第一种情况是由一数组的人组成的部门 ,这种情况很简单,是最基础的递归。
344
+ 第一种情况是由人员数组构成的部门 ,这种情况很简单,是最基础的递归。
345
345
346
346
第二种情况是我们得到的是对象。那么可将这个复杂的任务拆分成适用于更小部门的子任务。它们可能会被继续拆分,但很快或者不久就会拆分到第一种情况那样。
347
347
@@ -396,7 +396,7 @@ alert(sumSalaries(company)); // 7700
396
396
我们刚刚在上面的公司结构的示例中看过了它。
397
397
398
398
一个公司的 ** 部门** 是:
399
- - 一数组的人 。
399
+ - 人员数组 。
400
400
- 或一个 ** 部门** 对象。
401
401
402
402
对于 Web 开发者而言,有更熟知的例子:HTML 和 XML 文档。
@@ -513,7 +513,7 @@ list.next = list.next.next;
513
513
514
514
链表主要的缺点就是我们无法很容易地通过元素的编号获取元素。但在数组中却很容易:` arr[n]` 是一个直接引用。而在链表中,我们需要从起点元素开始,顺着 ` next` 找 ` N` 次才能获取到第 N 个元素。
515
515
516
- ……但是我们也并不是总需要这样的操作。比如,当我们需要一个队列甚至一个 [双向队列](https: // en.wikipedia.org/wiki/Double-ended_queue) —— 有序结构必须可以快速地从两端添加/移除元素,但是不需要访问的元素 。
516
+ ……但是我们也并不是总需要这样的操作。比如,当我们需要一个队列甚至一个 [双向队列](https: // en.wikipedia.org/wiki/Double-ended_queue) —— 有序结构必须可以快速地从两端添加/移除元素,无需访问中间元素 。
517
517
518
518
链表可以得到增强:
519
519
- 我们可以在 ` next` 之外,再添加 ` prev` 属性来引用前一个元素,以便轻松地往回移动。
Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ func();
27
27
function func () {
28
28
* ! *
29
29
// 引擎从函数开始就知道局部变量 x,
30
- // 但是变量 x 一直处于“未初始化”(无法使用)的状态,直到结束 let( “死区”)
30
+ // 但是变量 x 一直处于“未初始化”(无法使用)的状态,直到遇到 let,此时 “死区”结束
31
31
// 因此答案是 error
32
32
*/ ! *
33
33
You can’t perform that action at this time.
0 commit comments