fact-check by leonardomso/33-js-concepts
npx skills add https://github.com/leonardomso/33-js-concepts --skill fact-check使用此技能来验证 33 JavaScript Concepts 项目中概念文档页面的技术准确性。这确保我们不会传播关于 JavaScript 的错误信息。
按顺序遵循以下五个阶段进行完整的事实核查。
概念页面中的每个代码示例都必须验证其准确性。
识别文档中的所有代码块
对于每个代码块:
// "string")对于“错误”示例(标记为 ❌):
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
对于“正确”示例(标记为 ✓):
运行项目测试:
# 运行所有测试
npm test
# 运行特定概念的测试
npm test -- tests/fundamentals/call-stack/
npm test -- tests/fundamentals/primitive-types/
检查测试覆盖率:
/tests/{category}/{concept-name}/| 检查项 | 如何验证 |
|---|---|
console.log 输出与注释匹配 | 运行代码或在脑海中追踪 |
| 变量命名/使用正确 | 通读逻辑 |
| 函数返回预期值 | 追踪执行过程 |
| 异步代码按所述顺序解析 | 理解事件循环 |
| 错误示例确实抛出 | 在 try/catch 中测试 |
| 数组/对象方法返回正确的类型 | 检查 MDN |
typeof 结果准确 | 测试常见情况 |
| 如果相关则注明严格模式行为 | 检查示例是否依赖它 |
// 注意这些常见错误:
// 1. typeof null
typeof null // "object" (不是 "null"!)
// 2. 返回新数组与就地修改的数组方法
const arr = [1, 2, 3]
arr.push(4) // 返回 4 (长度),而不是数组!
arr.map(x => x*2) // 返回新数组,不就地修改
// 3. Promise 解析顺序
Promise.resolve().then(() => console.log('micro'))
setTimeout(() => console.log('macro'), 0)
console.log('sync')
// 输出:sync, micro, macro (不是 sync, macro, micro)
// 4. 比较结果
[] == false // true
[] === false // false
![] // false (空数组是真值!)
// 5. this 绑定
const obj = {
name: 'Alice',
greet: () => console.log(this.name) // undefined! 箭头函数没有 this
}
所有关于 JavaScript API、方法和行为的声明都应与 MDN 文档一致。
检查所有 MDN 链接:
验证 API 描述:
检查已弃用的 API:
验证浏览器兼容性声明:
| 内容类型 | MDN URL 模式 |
|---|---|
| Web API | https://developer.mozilla.org/en-US/docs/Web/API/{APIName} |
| 全局对象 | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/{Object} |
| 语句 | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/{Statement} |
| 运算符 | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/{Operator} |
| HTTP | https://developer.mozilla.org/en-US/docs/Web/HTTP |
| 声明类型 | 需要检查的内容 |
|---|---|
| 方法签名 | 参数、可选参数、返回类型 |
| 返回值 | 确切类型和可能的值 |
| 副作用 | 它会就地修改吗?影响什么? |
| 异常 | 可能抛出什么错误? |
| 浏览器支持 | 兼容性表 |
| 弃用状态 | 有任何弃用警告吗? |
对于细微的 JavaScript 行为,请根据 ECMAScript 规范进行验证。
ECMAScript 规范位于:https://tc39.es/ecma262/
| 概念 | 规范章节 |
|---|---|
| 类型强制转换 | 抽象操作 (7.1) |
| 相等性 | 抽象相等比较 (7.2.14),严格相等 (7.2.15) |
| typeof | typeof 运算符 (13.5.3) |
| 对象 | 普通和异质对象的行为 (10) |
| 函数 | ECMAScript 函数对象 (10.2) |
| this 绑定 | ResolveThisBinding (9.4.4) |
| Promise | Promise 对象 (27.2) |
| 迭代 | 迭代 (27.1) |
// 声明:"typeof null 返回 'object' 是因为一个 bug"
// 规范说:typeof null → "object" (表 41)
// 历史背景:这是 JS 1.0 中一个已知的怪癖
// 结论:✓ 正确,尽管称其为“bug”略显不正式
// 声明:"Promise 总是异步解析"
// 规范说:Promise 反应作业被排队 (27.2.1.3.2)
// 结论:✓ 正确 - 即使是已解析的 Promise 也会调度微任务
// 声明:"=== 比 == 快"
// 规范说:没有关于性能的内容
// 结论:⚠️ 需要细微差别 - 这取决于具体实现
所有外部链接(文章、视频、课程)都必须经过验证。
检查链接可访问性:
验证内容准确性:
检查发布日期:
验证描述准确性:
| 检查项 | 通过标准 |
|---|---|
| 链接有效 | 返回 200,内容加载 |
| 无付费墙 | 可免费访问(或明确标记) |
| 专注于 JavaScript | 主要不是关于其他语言 |
| 未过时 | 对于现代 JS 主题,发布于 2015 年后 |
| 描述准确 | 我们的描述与实际内容匹配 |
| 无反模式 | 不教授不良实践 |
| 信誉良好的来源 | 来自知名/可信的创作者 |
var审查所有关于 JavaScript 行为的文本声明。
| 声明类型 | 如何验证 |
|---|---|
| 性能声明 | 需要基准测试或注意事项 |
| 浏览器行为 | 指定哪些浏览器,检查 MDN |
| 历史声明 | 验证日期/版本 |
| “总是”或“从不”的陈述 | 检查是否有例外 |
| 比较(X 与 Y) | 验证双方都准确 |
❌ "async/await 总是比 Promise 好"
→ 验证:并非总是 - 对于并行操作,Promise.all() 更好
❌ "JavaScript 是一种解释型语言"
→ 验证:现代 JS 引擎使用 JIT 编译
❌ "对象是按引用传递的"
→ 验证:技术上来说是“按共享传递” - 引用是按值传递的
❌ "=== 比 == 快"
→ 验证:取决于具体实现,规范不保证
✓ "JavaScript 是单线程的"
→ 验证:对于主线程正确(Web Workers 是独立的)
✓ "Promise 总是异步解析"
→ 验证:根据 ECMAScript 规范正确
注意这些被陈述为事实的误解。
| 误解 | 现实 | 如何验证 |
|---|---|---|
typeof null === "object" 是故意的 | 这是 JS 1.0 中一个因兼容性无法修复的 bug | 历史背景,TC39 讨论 |
| JavaScript 没有类型 | JS 是动态类型,不是无类型 | ECMAScript 规范定义了类型 |
== 总是错的 | == null 同时检查 null 和 undefined,有有效的用途 | 许多风格指南允许这种模式 |
NaN === NaN 为假是“错误的” | 根据 IEEE 754 浮点规范,这是故意的 | IEEE 754 标准 |
| 误解 | 现实 | 如何验证 |
|---|---|---|
| 箭头函数只是更短的语法 | 它们没有 this、arguments、super 或 new.target | MDN,ECMAScript 规范 |
var 会连同其值一起提升到函数作用域 | 只有声明被提升,而不是初始化 | 代码测试,MDN |
| 闭包是一个特殊的可选功能 | JS 中的所有函数都是闭包 | ECMAScript 规范 |
| IIFE 已经过时 | 对于一次性初始化仍然有用 | 现代代码库仍在使用它们 |
| 误解 | 现实 | 如何验证 |
|---|---|---|
| Promise 并行运行 | JS 是单线程的;Promise 是异步的,不是并行的 | 事件循环解释 |
async/await 与 Promise 不同 | 它是 Promise 的语法糖 | MDN,可以 await 任何 thenable 对象 |
setTimeout(fn, 0) 立即运行 | 在当前执行 + 微任务之后运行 | 事件循环,代码测试 |
await 暂停整个程序 | 只暂停异步函数,不暂停事件循环 | 代码测试 |
| 误解 | 现实 | 如何验证 |
|---|---|---|
| 对象是“按引用传递”的 | 引用是按值传递的(“按共享传递”) | 重新赋值测试 |
const 使对象不可变 | const 防止重新赋值,而不是就地修改 | 代码测试 |
| JavaScript 中的一切都是对象 | 原始值不是对象(尽管它们有包装器) | typeof 测试,MDN |
Object.freeze() 创建深度不可变性 | 它是浅层的 - 嵌套对象仍然可以被就地修改 | 代码测试 |
| 误解 | 现实 | 如何验证 |
|---|---|---|
=== 总是比 == 快 | 取决于具体实现,规范不保证 | 基准测试结果各异 |
for 循环比 forEach 快 | 现代引擎对两者都进行了优化;取决于用例 | 基准测试 |
| 箭头函数更快 | 没有性能差异,只是行为不同 | 基准测试 |
| 避免 DOM 操作总是更快 | 有时批量变更比单个变更更慢 | 取决于浏览器、用例 |
运行项目的测试套件是事实核查的关键部分。
# 运行所有测试
npm test
# 以监视模式运行测试
npm run test:watch
# 运行测试并生成覆盖率报告
npm run test:coverage
# 运行特定概念的测试
npm test -- tests/fundamentals/call-stack/
npm test -- tests/fundamentals/primitive-types/
npm test -- tests/fundamentals/value-reference-types/
npm test -- tests/fundamentals/type-coercion/
npm test -- tests/fundamentals/equality-operators/
npm test -- tests/fundamentals/scope-and-closures/
tests/
├── fundamentals/ # 概念 1-6
│ ├── call-stack/
│ ├── primitive-types/
│ ├── value-reference-types/
│ ├── type-coercion/
│ ├── equality-operators/
│ └── scope-and-closures/
├── functions-execution/ # 概念 7-8
│ ├── event-loop/
│ └── iife-modules/
└── web-platform/ # 概念 9-10
├── dom/
└── http-fetch/
如果一个概念没有测试:
| 资源 | URL | 用于 |
|---|---|---|
| MDN Web 文档 | https://developer.mozilla.org | API 文档、指南、兼容性 |
| ECMAScript 规范 | https://tc39.es/ecma262 | 权威行为 |
| TC39 提案 | https://github.com/tc39/proposals | 新功能、阶段 |
| Can I Use | https://caniuse.com | 浏览器兼容性 |
| Node.js 文档 | https://nodejs.org/docs | Node 特定 API |
| V8 博客 | https://v8.dev/blog | 引擎内部原理 |
| 资源 | 路径 | 用于 |
|---|---|---|
| 测试套件 | /tests/ | 验证代码示例 |
| 概念页面 | /docs/concepts/ | 当前内容 |
| 运行测试 | npm test | 执行所有测试 |
使用此模板记录您的发现。
# 事实核查报告:[概念名称]
**文件:** `/docs/concepts/[slug].mdx`
**日期:** YYYY-MM-DD
**审核人:** [姓名/Claude]
**总体状态:** ✅ 已验证 | ⚠️ 轻微问题 | ❌ 重大问题
---
## 执行摘要
[2-3 句话总结发现。说明页面整体是否准确,并突出任何关键问题。]
**测试运行:** 是/否
**测试结果:** X 通过,Y 失败
**外部链接检查:** X/Y 有效
---
## 阶段 1:代码示例验证
| # | 描述 | 行号 | 状态 | 备注 |
|---|-------------|------|--------|-------|
| 1 | [简要描述] | XX | ✅/⚠️/❌ | [备注] |
| 2 | [简要描述] | XX | ✅/⚠️/❌ | [备注] |
| 3 | [简要描述] | XX | ✅/⚠️/❌ | [备注] |
### 发现的代码问题
#### 问题 1:[标题]
**位置:** 第 XX 行
**严重性:** 关键/主要/次要
**当前代码:**
```javascript
// 有问题的代码
问题: [解释错误所在] 正确代码:
// 更正后的代码
| 声明 | 位置 | 来源 | 状态 | 备注 |
|---|---|---|---|---|
| [所做的声明] | 第 XX 行 | MDN/规范 | ✅/⚠️/❌ | [备注] |
| 链接文本 | URL | 状态 |
|---|---|---|
| [文本] | [URL] | ✅ 200 / ❌ 404 |
[如果任何声明与 ECMAScript 规范不符,请在此详细说明]
| 资源 | 类型 | 链接 | 内容 | 备注 |
|---|---|---|---|---|
| [标题] | 文章/视频 | ✅/❌ | ✅/⚠️/❌ | [备注] |
| 资源 | 描述准确? | 备注 |
|---|---|---|
| [标题] | ✅/❌ | [备注] |
| 声明 | 位置 | 结论 | 备注 |
|---|---|---|---|
| "[声明]" | 第 XX 行 | ✅/⚠️/❌ | [备注] |
测试文件: /tests/[category]/[concept]/[concept].test.js 测试运行: XX 通过: XX 失败: XX
| 测试名称 | 预期 | 实际 | 相关文档行号 |
|---|---|---|---|
| [测试] | [预期] | [实际] | 第 XX 行 |
文档中没有相应测试的示例:
验证人: [姓名/Claude] 日期: YYYY-MM-DD 建议: ✅ 准备发布 | ⚠️ 先修复问题 | ❌ 需要重大修订
---
## 快速参考:验证命令
```bash
# 运行所有测试
npm test
# 运行特定概念测试
npm test -- tests/fundamentals/call-stack/
# 检查损坏的链接(如果有链接检查器)
# 安装:npm install -g broken-link-checker
# 运行:blc https://developer.mozilla.org/... -ro
# 用于测试的快速 JavaScript REPL
node
> typeof null
'object'
> [1,2,3].map(x => x * 2)
[ 2, 4, 6 ]
事实核查概念页面时:
npm test 自动捕获代码错误记住: 我们的读者信任我们教授正确的 JavaScript。一条错误信息可能会造成需要数年才能消除的困惑。请认真对待事实核查。
每周安装次数
249
仓库
GitHub 星标数
66.3K
首次出现
2026年1月20日
安全审计
安装于
opencode144
claude-code143
gemini-cli142
github-copilot142
codex134
cursor123
Use this skill to verify the technical accuracy of concept documentation pages for the 33 JavaScript Concepts project. This ensures we're not spreading misinformation about JavaScript.
Follow these five phases in order for a complete fact check.
Every code example in the concept page must be verified for accuracy.
Identify all code blocks in the document
For each code block:
// "string")For "wrong" examples (marked with ❌):
For "correct" examples (marked with ✓):
Run project tests:
# Run all tests
npm test
# Run tests for a specific concept
npm test -- tests/fundamentals/call-stack/
npm test -- tests/fundamentals/primitive-types/
Check test coverage:
/tests/{category}/{concept-name}/| Check | How to Verify |
|---|---|
console.log outputs match comments | Run code or trace mentally |
| Variables are correctly named/used | Read through logic |
| Functions return expected values | Trace execution |
| Async code resolves in stated order | Understand event loop |
| Error examples actually throw | Test in try/catch |
| Array/object methods return correct types | Check MDN |
typeof results are accurate | Test common cases |
| Strict mode behavior noted if relevant | Check if example depends on it |
// Watch for these common mistakes:
// 1. typeof null
typeof null // "object" (not "null"!)
// 2. Array methods that return new arrays vs mutate
const arr = [1, 2, 3]
arr.push(4) // Returns 4 (length), not the array!
arr.map(x => x*2) // Returns NEW array, doesn't mutate
// 3. Promise resolution order
Promise.resolve().then(() => console.log('micro'))
setTimeout(() => console.log('macro'), 0)
console.log('sync')
// Output: sync, micro, macro (NOT sync, macro, micro)
// 4. Comparison results
[] == false // true
[] === false // false
![] // false (empty array is truthy!)
// 5. this binding
const obj = {
name: 'Alice',
greet: () => console.log(this.name) // undefined! Arrow has no this
}
All claims about JavaScript APIs, methods, and behavior should align with MDN documentation.
Check all MDN links:
Verify API descriptions:
Check for deprecated APIs:
Verify browser compatibility claims:
| Content Type | MDN URL Pattern |
|---|---|
| Web APIs | https://developer.mozilla.org/en-US/docs/Web/API/{APIName} |
| Global Objects | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/{Object} |
| Statements | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/{Statement} |
| Operators | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/{Operator} |
| HTTP | https://developer.mozilla.org/en-US/docs/Web/HTTP |
| Claim Type | What to Check |
|---|---|
| Method signature | Parameters, optional params, return type |
| Return value | Exact type and possible values |
| Side effects | Does it mutate? What does it affect? |
| Exceptions | What errors can it throw? |
| Browser support | Compatibility tables |
| Deprecation status | Any deprecation warnings? |
For nuanced JavaScript behavior, verify against the ECMAScript specification.
The ECMAScript specification is at: https://tc39.es/ecma262/
| Concept | Spec Section |
|---|---|
| Type coercion | Abstract Operations (7.1) |
| Equality | Abstract Equality Comparison (7.2.14), Strict Equality (7.2.15) |
| typeof | The typeof Operator (13.5.3) |
| Objects | Ordinary and Exotic Objects' Behaviours (10) |
| Functions | ECMAScript Function Objects (10.2) |
| this binding | ResolveThisBinding (9.4.4) |
| Promises | Promise Objects (27.2) |
| Iteration | Iteration (27.1) |
// Claim: "typeof null returns 'object' due to a bug"
// Spec says: typeof null → "object" (Table 41)
// Historical context: This is a known quirk from JS 1.0
// Verdict: ✓ Correct, though calling it a "bug" is slightly informal
// Claim: "Promises always resolve asynchronously"
// Spec says: Promise reaction jobs are enqueued (27.2.1.3.2)
// Verdict: ✓ Correct - even resolved promises schedule microtasks
// Claim: "=== is faster than =="
// Spec says: Nothing about performance
// Verdict: ⚠️ Needs nuance - this is implementation-dependent
All external links (articles, videos, courses) must be verified.
Check link accessibility:
Verify content accuracy:
Check publication date:
Verify description accuracy:
| Check | Pass Criteria |
|---|---|
| Link works | Returns 200, content loads |
| Not paywalled | Free to access (or clearly marked) |
| JavaScript-focused | Not primarily about other languages |
| Not outdated | Post-2015 for modern JS topics |
| Accurate description | Our description matches actual content |
| No anti-patterns | Doesn't teach bad practices |
| Reputable source | From known/trusted creators |
var everywhere for ES6+ topicsReview all prose claims about JavaScript behavior.
| Claim Type | How to Verify |
|---|---|
| Performance claims | Need benchmarks or caveats |
| Browser behavior | Specify which browsers, check MDN |
| Historical claims | Verify dates/versions |
| "Always" or "never" statements | Check for exceptions |
| Comparisons (X vs Y) | Verify both sides accurately |
❌ "async/await is always better than Promises"
→ Verify: Not always - Promise.all() is better for parallel operations
❌ "JavaScript is an interpreted language"
→ Verify: Modern JS engines use JIT compilation
❌ "Objects are passed by reference"
→ Verify: Technically "passed by sharing" - the reference is passed by value
❌ "=== is faster than =="
→ Verify: Implementation-dependent, not guaranteed by spec
✓ "JavaScript is single-threaded"
→ Verify: Correct for the main thread (Web Workers are separate)
✓ "Promises always resolve asynchronously"
→ Verify: Correct per ECMAScript spec
Watch for these misconceptions being stated as fact.
| Misconception | Reality | How to Verify |
|---|---|---|
typeof null === "object" is intentional | It's a bug from JS 1.0 that can't be fixed for compatibility | Historical context, TC39 discussions |
| JavaScript has no types | JS is dynamically typed, not untyped | ECMAScript spec defines types |
== is always wrong | == null checks both null and undefined, has valid uses | Many style guides allow this pattern |
NaN === NaN is false "by mistake" | It's intentional per IEEE 754 floating point spec | IEEE 754 standard |
| Misconception | Reality | How to Verify |
|---|---|---|
| Arrow functions are just shorter syntax | They have no this, arguments, super, or new.target | MDN, ECMAScript spec |
var is hoisted to function scope with its value | Only declaration is hoisted, not initialization | Code test, MDN |
| Closures are a special opt-in feature | All functions in JS are closures | ECMAScript spec |
| IIFEs are obsolete | Still useful for one-time initialization | Modern codebases still use them |
| Misconception | Reality | How to Verify |
|---|---|---|
| Promises run in parallel | JS is single-threaded; Promises are async, not parallel | Event loop explanation |
async/await is different from Promises | It's syntactic sugar over Promises | MDN, can await any thenable |
setTimeout(fn, 0) runs immediately | Runs after current execution + microtasks | Event loop, code test |
await pauses the entire program | Only pauses the async function, not the event loop | Code test |
| Misconception | Reality | How to Verify |
|---|---|---|
| Objects are "passed by reference" | References are passed by value ("pass by sharing") | Reassignment test |
const makes objects immutable | const prevents reassignment, not mutation | Code test |
| Everything in JavaScript is an object | Primitives are not objects (though they have wrappers) | typeof tests, MDN |
Object.freeze() creates deep immutability | It's shallow - nested objects can still be mutated | Code test |
| Misconception | Reality | How to Verify |
|---|---|---|
=== is always faster than == | Implementation-dependent, not spec-guaranteed | Benchmarks vary |
for loops are faster than forEach | Modern engines optimize both; depends on use case | Benchmark |
| Arrow functions are faster | No performance difference, just different behavior | Benchmark |
| Avoiding DOM manipulation is always faster | Sometimes batch mutations are slower than individual | Depends on browser, use case |
Running the project's test suite is a key part of fact-checking.
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Run tests for specific concept
npm test -- tests/fundamentals/call-stack/
npm test -- tests/fundamentals/primitive-types/
npm test -- tests/fundamentals/value-reference-types/
npm test -- tests/fundamentals/type-coercion/
npm test -- tests/fundamentals/equality-operators/
npm test -- tests/fundamentals/scope-and-closures/
tests/
├── fundamentals/ # Concepts 1-6
│ ├── call-stack/
│ ├── primitive-types/
│ ├── value-reference-types/
│ ├── type-coercion/
│ ├── equality-operators/
│ └── scope-and-closures/
├── functions-execution/ # Concepts 7-8
│ ├── event-loop/
│ └── iife-modules/
└── web-platform/ # Concepts 9-10
├── dom/
└── http-fetch/
If a concept doesn't have tests:
| Resource | URL | Use For |
|---|---|---|
| MDN Web Docs | https://developer.mozilla.org | API docs, guides, compatibility |
| ECMAScript Spec | https://tc39.es/ecma262 | Authoritative behavior |
| TC39 Proposals | https://github.com/tc39/proposals | New features, stages |
| Can I Use | https://caniuse.com | Browser compatibility |
| Node.js Docs | https://nodejs.org/docs | Node-specific APIs |
| V8 Blog | https://v8.dev/blog | Engine internals |
| Resource | Path | Use For |
|---|---|---|
| Test Suite | /tests/ | Verify code examples |
| Concept Pages | /docs/concepts/ | Current content |
| Run Tests | npm test | Execute all tests |
Use this template to document your findings.
# Fact Check Report: [Concept Name]
**File:** `/docs/concepts/[slug].mdx`
**Date:** YYYY-MM-DD
**Reviewer:** [Name/Claude]
**Overall Status:** ✅ Verified | ⚠️ Minor Issues | ❌ Major Issues
---
## Executive Summary
[2-3 sentence summary of findings. State whether the page is accurate overall and highlight any critical issues.]
**Tests Run:** Yes/No
**Test Results:** X passing, Y failing
**External Links Checked:** X/Y valid
---
## Phase 1: Code Example Verification
| # | Description | Line | Status | Notes |
|---|-------------|------|--------|-------|
| 1 | [Brief description] | XX | ✅/⚠️/❌ | [Notes] |
| 2 | [Brief description] | XX | ✅/⚠️/❌ | [Notes] |
| 3 | [Brief description] | XX | ✅/⚠️/❌ | [Notes] |
### Code Issues Found
#### Issue 1: [Title]
**Location:** Line XX
**Severity:** Critical/Major/Minor
**Current Code:**
```javascript
// The problematic code
Problem: [Explanation of what's wrong] Correct Code:
// The corrected code
| Claim | Location | Source | Status | Notes |
|---|---|---|---|---|
| [Claim made] | Line XX | MDN/Spec | ✅/⚠️/❌ | [Notes] |
| Link Text | URL | Status |
|---|---|---|
| [Text] | [URL] | ✅ 200 / ❌ 404 |
[If any claims don't match the ECMAScript spec, detail them here]
| Resource | Type | Link | Content | Notes |
|---|---|---|---|---|
| [Title] | Article/Video | ✅/❌ | ✅/⚠️/❌ | [Notes] |
| Resource | Description Accurate? | Notes |
|---|---|---|
| [Title] | ✅/❌ | [Notes] |
| Claim | Location | Verdict | Notes |
|---|---|---|---|
| "[Claim]" | Line XX | ✅/⚠️/❌ | [Notes] |
Test File: /tests/[category]/[concept]/[concept].test.js Tests Run: XX Passing: XX Failing: XX
| Test Name | Expected | Actual | Related Doc Line |
|---|---|---|---|
| [Test] | [Expected] | [Actual] | Line XX |
Examples in documentation without corresponding tests:
Verified by: [Name/Claude] Date: YYYY-MM-DD Recommendation: ✅ Ready to publish | ⚠️ Fix issues first | ❌ Major revision needed
---
## Quick Reference: Verification Commands
```bash
# Run all tests
npm test
# Run specific concept tests
npm test -- tests/fundamentals/call-stack/
# Check for broken links (if you have a link checker)
# Install: npm install -g broken-link-checker
# Run: blc https://developer.mozilla.org/... -ro
# Quick JavaScript REPL for testing
node
> typeof null
'object'
> [1,2,3].map(x => x * 2)
[ 2, 4, 6 ]
When fact-checking a concept page:
npm test catches code errors automaticallyRemember: Our readers trust us to teach them correct JavaScript. A single piece of misinformation can create confusion that takes years to unlearn. Take fact-checking seriously.
Weekly Installs
249
Repository
GitHub Stars
66.3K
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode144
claude-code143
gemini-cli142
github-copilot142
codex134
cursor123
Vue 3 调试指南:解决响应式、计算属性与监听器常见错误
9,900 周安装
Schema结构化数据完整指南:实现富媒体结果与AI搜索优化(2025)
244 周安装
实用程序员框架:DRY、正交性等七大元原则提升软件质量与架构设计
244 周安装
Python PDF处理指南:合并拆分、提取文本表格、创建PDF文件教程
244 周安装
Ruby on Rails 应用开发指南:构建功能全面的Rails应用,包含模型、控制器、身份验证与最佳实践
245 周安装
代码规范库技能 - 多语言编码标准库,支持Python/Go/Rust/TypeScript等自动加载
245 周安装
阿里云Model Studio模型爬取与技能自动生成工具 - 自动化AI技能开发
245 周安装