Skip to content

Commit 5c71708

Browse files
committed
doc: 文档更新 🔥
1 parent 5cb0334 commit 5c71708

2 files changed

Lines changed: 40 additions & 23 deletions

File tree

第01章 基础知识.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -269,18 +269,18 @@ let count: number = 10;
269269

270270
### 摘要
271271

272-
1. **JavaScript 是动态类型语言**,变量的类型由值决定,可以随时变化。
273-
2. **JavaScript 引擎自动推断变量的类型**,但类型可能会变化。
274-
3. **typeof 可以检查变量的类型**,但 null 被认为是 "object"。
275-
4. **const 变量的类型不会改变**,而 let 变量的类型可以动态变化。
276-
5. **JavaScript 支持隐式和显式类型转换**,隐式转换可能导致意外结果。
277-
6. **TypeScript 提供静态类型检查**,防止类型错误。
272+
1. JavaScript 是动态类型语言,变量的类型由值决定,可以随时变化。
273+
2. JavaScript 引擎自动推断变量的类型,但类型可能会变化。
274+
3. typeof 可以检查变量的类型,但 null 被认为是 "object"。
275+
4. const 变量的类型不会改变,而 let 变量的类型可以动态变化。
276+
5. JavaScript 支持隐式和显式类型转换,隐式转换可能导致意外结果。
277+
6. TypeScript 提供静态类型检查,防止类型错误。
278278

279279
## 总结
280280

281-
1. **推荐使用 let 代替 var**,减少变量提升和作用域污染。
282-
2. **const 用于定义不会被修改的常量**,避免不必要的赋值操作。
283-
3. **命名变量时遵循 camelCase 规范**,提高代码可读性和一致性。
281+
1. 推荐使用 let 代替 var,减少变量提升和作用域污染。
282+
2. const 用于定义不会被修改的常量,避免不必要的赋值操作。
283+
3. 命名变量时遵循 camelCase 规范,提高代码可读性和一致性。
284284

285285
# 标识符
286286

第16章 事件循环.md

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,36 @@ setTimeout
113113

114114
# 事件循环的执行流程
115115

116-
1. **执行同步代码**,将调用栈中的任务依次执行完毕。
117-
2. **执行微任务**,清空微任务队列中的所有任务
118-
3. **执行一个宏任务**如 setTimeout 回调)。
119-
4. **重复上述步骤**,直到所有任务执行完毕。
116+
- 步骤 1:**执行同步代码**(调用栈清空)
117+
- 步骤 2:清空 **微任务队列**(优先级高,全部执行)
118+
- 步骤3:**执行一个宏任务**只取一个,不是清空整个宏任务队列)
119+
- **重复循环**(回到步骤2,继续清空微任务→执行下一个宏任务)
120120

121-
示例:
121+
**示例 1:**
122+
123+
```js
124+
console.log(1);
125+
126+
setTimeout(() => {
127+
console.log(2);
128+
Promise.resolve().then(() => console.log(3));
129+
}, 0);
130+
131+
setTimeout(() => console.log(4), 0);
132+
133+
Promise.resolve().then(() => console.log(5));
134+
```
135+
136+
输出顺序:`1 → 5 → 2 → 3 → 4`
137+
138+
执行过程:
139+
140+
1. 同步代码:`1`
141+
2. 清空微任务:`5`
142+
3. 执行第一个宏任务(`setTimeout 2`),输出`2` → 其回调中产生微任务`3`**立即清空微任务**,输出`3`
143+
4. 执行下一个宏任务(`setTimeout 4`),输出`4`
144+
145+
**示例 2:**
122146

123147
```js
124148
console.log('1');
@@ -134,16 +158,9 @@ Promise.resolve().then(() => {
134158
console.log('4');
135159
```
136160

137-
执行顺序:
138-
139-
```js
140-
1
141-
4
142-
3
143-
2
144-
```
161+
执行顺序:`1 → 4 → 3 → 2`
145162

146-
解释
163+
执行过程
147164

148165
1. console.log('1') 和 console.log('4') 立即执行(同步任务)。
149166
2. setTimeout 回调进入 **宏任务队列**

0 commit comments

Comments
 (0)