File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
124148console .log (' 1' );
@@ -134,16 +158,9 @@ Promise.resolve().then(() => {
134158console .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
1481651 . console.log('1') 和 console.log('4') 立即执行(同步任务)。
1491662 . setTimeout 回调进入 ** 宏任务队列** 。
You can’t perform that action at this time.
0 commit comments