技能 javascript-mastery
📦

javascript-mastery

安全

掌握 JavaScript:完整参考指南

在一个全面的参考资料中学习 JavaScript 基础知识和高级概念。从原始类型到异步模式,提供清晰的解释和实用的代码示例。

支持: Claude Codex Code(CC)
🥉 73 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“javascript-mastery”。 解释 JavaScript 中闭包是如何工作的

预期结果:

闭包是一个函数,即使在其词法作用域之外执行,它也能记住该作用域。示例:一个计数器函数在多次调用之间维护一个私有 count 变量,每次调用返回的函数时都会递增。

正在使用“javascript-mastery”。 输出是什么:console.log(1); setTimeout(() => console.log(2), 0); Promise.resolve().then(() => console.log(3)); console.log(4);

预期结果:

输出:1, 4, 3, 2。解释:同步代码先运行(1, 4),然后是微任务如 Promise 回调(3),最后是宏任务如 setTimeout(2)。

安全审计

安全
v1 • 2/25/2026

This skill is a JavaScript educational reference document containing code examples for learning purposes. Static analysis flagged 89 patterns (template literals, fetch examples, documentation URLs) that are false positives - all are JavaScript syntax examples in markdown, not executable code. No security risks detected. Safe for publication.

1
已扫描文件
648
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
87
规范符合性

你能构建什么

学习 JavaScript 基础知识

初学者可以使用此技能通过清晰的示例和解释来理解核心 JavaScript 概念。

调试棘手行为

经验丰富的开发者在遇到意外 JavaScript 行为(如类型转换或 this 绑定问题)时可以参考此技能。

教学和代码审查

教育者和团队负责人可以在教学 session 或代码审查期间使用此技能来解释 JavaScript 概念。

试试这些提示

解释 JavaScript 概念
用一个简单的例子解释 JavaScript 闭包是如何工作的。
比较 JavaScript 特性
JavaScript 中 == 和 === 有什么区别?展示各自使用场景的示例。
调试 JavaScript 行为
为什么这段代码输出 undefined 而不是预期值?解释涉及的作用域规则。
高级异步模式
展示如何在 JavaScript 中处理多个异步操作。用示例比较 Promise.all、Promise.race 和顺序 await。

最佳实践

  • 使用严格相等(===)而不是松散相等(==)以避免类型转换错误
  • 优先使用 let 和 const 而不是 var,以获得块级作用域变量并避免提升问题
  • 使用 async/await 编写更清晰的异步代码,而不是嵌套回调或 Promise 链

避免

  • 使用 var,它是函数作用域的,可能导致提升混淆
  • 回调地狱 - 嵌套多个回调而不是使用 Promises 或 async/await
  • 修改用 const 声明的对象,这可能导致意外的变更

常见问题

null 和 undefined 有什么区别?
undefined 表示变量已声明但未赋值。null 是表示无值的有意赋值。typeof undefined 是 'undefined',而 typeof null 是 'object'(一个历史遗留的 bug)。
为什么使用箭头函数而不是普通函数?
箭头函数提供更简洁的语法并在词法上绑定 this 值,使其非常适合不应该重新绑定 this 的回调和方法。它们不能用作构造函数。
展开运算符(...)做什么?
展开运算符将可迭代对象(数组或对象)展开为单个元素。它用于复制数组/对象、合并集合或将数组元素作为函数参数传递。
JavaScript 中的事件循环是如何工作的?
JavaScript 先执行同步代码,然后处理所有微任务(Promises),然后是宏任务(setTimeout、setInterval)。这个顺序解释了为什么 Promise 回调即使在零延迟的情况下也会在 setTimeout 之前运行。
map、filter 和 reduce 有什么区别?
map 转换每个元素并返回新数组。filter 保留匹配条件的元素。reduce 将所有元素累积为单个值。这三个都是不改变原始数组的纯函数。
什么时候应该使用可选链(?.)和空值合并运算符(??)?
使用可选链可以安全地访问嵌套属性,而不会在中间值为 null 或 undefined 时出错。使用空值合并运算符仅在值为 null 或 undefined 时提供默认值,而不是对所有假值(如 0 或空字符串)都提供默认值。

开发者详情

文件结构

📄 SKILL.md