---
description: "语言与运行时机制；例子可以直接在页面上跑，先猜输出再点运行核对，比读十遍规范快"
---

# JavaScript

JavaScript 语言机制的笔记。机制类的那几篇骨架是**场景 → 一句话 → 心智模型 → 自己跑一遍 → 坑**，价值密度在"心智模型"——记住引擎在哪个时刻做什么动作，行为自己就推得出来，不用背规则表，也不用靠面试题的答案反推。查表类的对照笔记不套这个骨架，它按语法分类排，是拿来 Ctrl+F 的。

机制类笔记的代码块**可以直接在页面上跑**：代码块下方有「运行」按钮，点了当场出结果。所以读的时候可以先自己猜输出，再点开核对——猜错的地方才是真正学到东西的地方。跑的是 JS，所以 TS 片段（对照表里那些）不带运行按钮，要看效果得自己转译。实现是 [`vendor/js-runner.js`](../../vendor/js-runner.js)，写法见 [格式怎么写](../../skills/wiki-guide/reference/components.md#js-run)。

有两条边界要先知道，否则会误判自己看到的现象：

- 代码在 **Web Worker** 沙箱里执行，那里**没有 `document` 和 `window`**。所以本分类的例子一律不碰 DOM，讲的是语言和运行时机制本身，不是浏览器 API。
- 同步死循环有 5 秒硬保护（`worker.terminate()` 直接砍掉，页面不受影响）。这意味着你可以放心写坏代码——**故意写坏**是这套笔记预期的用法。

## 笔记

- [输出顺序不是代码顺序：一条栈、两级队列](event-loop.md) —— 同步跑到栈空 → 清空微任务队列 → 只取一个宏任务，循环；把 `await` 看成 `.then` 之后，经典面试题不用背也能算出来
- [Python 后端读 TS 仓库：暴力语法对照表](js-ts-for-python-devs.md) —— 不是心智模型深挖，是查表：类型系统、解构、异步、`?.`/`??`/`as`/`satisfies` 这类符号，以及 deepseek-harness 仓库自己的高频写法（`ctx.effect`、waterfall `next()`、`Branded<B>`）
