Install
openclaw skills install @thcjp/javascript-skills-tool-freeopenclaw skills install @thcjp/javascript-skills-tool-freeJavaScript规范工具(免费版)面向个人开发者,提供经过提炼的JavaScript代码风格指南。当你在请求中提及 JavaScript 或前端编码相关内容时,本工具会自动激活,为你输出符合业界主流规范的代码、给出风格纠正建议,并解释每条规则背后的原因。
本版本聚焦于日常编码中最常用的核心规则集,适合个人项目、学习场景与快速自查。如需团队级规范、性能优化与自动化集成能力,请升级至 PRO 版本。
| 能力 | 说明 |
|---|---|
| 风格规则指导 | 覆盖引用、对象、数组、函数、箭头函数、字符串等核心规则 |
| 代码生成 | 输出符合规范的JavaScript代码片段 |
| 基础代码审查 | 识别常见风格问题并给出修正建议 |
| 命名约定 | 提供camelCase / PascalCase / 常量命名指引 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置。 |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 按照skill规范执行核心功能执行操作,遵循单一意图原则。 输出: 返回核心功能执行的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 按照skill规范执行参数配置与调用操作,遵循单一意图原则。 输出: 返回参数配置与调用的执行结果,包含操作状态和输出数据。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 按照skill规范执行结果处理与输出操作,遵循单一意图原则。 输出: 返回结果处理与输出的执行结果,包含操作状态和输出数据。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:面向个人开发者的、代码风格指南、涵盖核心规则与基、础代码审查能力、规范工具、免费版、为个人开发者提供、基础而实用的、代码风格指导、涵盖对象、字符串等核心语法、提供基础代码审查、与风格纠正建议、输出符合主流规范等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。用户希望生成一个深拷贝对象的工具函数,工具会输出符合规范的实现。
/**
* 深拷贝一个普通对象或数组,优先使用结构化克隆。
* 在不支持 structuredClone 的环境中回退到 JSON 序列化。
*
* @param {Object|Array} source - 待克隆的值。
* @returns {Object|Array} source 的深拷贝。
*/
function deepClone(source) {
if (typeof structuredClone === 'function') {
return structuredClone(source);
}
return JSON.parse(JSON.stringify(source));
}
export default deepClone;
用户粘贴一段使用 var 和函数声明的旧代码,工具指出问题并给出符合规范的版本。
// 修正前
var count = 1;
var items = new Array();
// 修正后
const count = 1;
const items = [];
用户询问如何正确使用解构与模块导入,工具给出标准示例。
// 对象解构
function getFullName({ firstName, lastName }) {
return `${firstName} ${lastName}`;
}
// 数组解构
const [first, , third] = [1, 2, 3];
// ES 模块
import { fetchData } from './utils';
export default fetchData;
以下场景JavaScript规范工具(免费版)不适合处理:
需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求。
本工具为基于Markdown指令的Prompt Skill,无需安装额外依赖。
用户: 如何在 JavaScript 中正确声明变量?
工具: 使用 const 声明不会被重新赋值的引用,使用 let 声明需要重新赋值的引用,避免使用 var。
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
// .eslintrc.js
module.exports = {
env: {
browser: true,
es2022: true,
},
extends: ['eslint:recommended'],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
rules: {
'no-var': 'error',
'prefer-const': 'error',
'eqeqeq': ['error', 'always'],
'no-unused-vars': 'warn',
},
};
{
"singleQuote": true,
"semi": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80
}
使用 const 为主,let 为辅,杜绝 var。
// 推荐
const count = 1;
let mutableValue = 1;
mutableValue += 1;
// 不推荐
var count = 1;
使用字面量语法创建对象与数组,避免使用构造函数。
// 推荐
const item = {};
const items = [];
// 不推荐
const item = new Object();
const items = new Array();
匿名函数优先使用箭头函数,单表达式可省略大括号与 return。
// 推荐
[1, 2, 3].map((x) => x * 2);
[1, 2, 3].map((x) => {
const y = x + 1;
return x * y;
});
单引号 '' 用于普通字符串,模板字符串用于插值与多行。
// 推荐
const name = 'Alice';
const greeting = `Hello, ${name}!`;
访问对象多个属性或函数多返回值时使用解构。
// 推荐
function getFullName({ firstName, lastName }) {
return `${firstName} ${lastName}`;
}
const { left, top } = processInput(input);
| 类型 | 约定 | 示例 |
|---|---|---|
| 变量与函数 | camelCase | calculateTotal |
| 类与构造函数 | PascalCase | class User {} |
| 常量 | UPPERCASE_SNAKE_CASE | MAX_RETRY_COUNT |
使用 === 与 !==,避免隐式类型转换。
// 推荐
if (name !== '') { /* ... */ }
if (collection.length > 0) { /* ... */ }
// 不推荐
if (name != '') { /* ... */ }
统一使用 ES 模块,导入语句置于文件顶部。
// 推荐
import { fetchData } from './utils';
import {
longNameA,
longNameB,
} from 'path/to/module';
export default fetchData;
免费版涵盖引用、对象、数组、解构、字符串、函数、箭头函数、类与构造函数、模块、命名约定、比较运算、块与控制语句、注释与空白、逗号与分号、类型转换、可选链与空值合并等核心规则集。
本工具主要面向 JavaScript 规范,对 TypeScript 提供基础兼容建议,深度 TypeScript 规范请使用 PRO 版本或专用工具。
直接在请求中粘贴代码并说明"审查这段 JavaScript 代码的风格问题",工具会逐项给出修正建议。
| 维度 | 免费版 | PRO版 |
|---|---|---|
| 规则覆盖 | 核心规则集 | 全量规则 + 性能优化 + 安全审查 |
| 适用对象 | 个人开发者 | 团队与企业 |
| 自动化集成 | 基础配置示例 | CI/CD + 预提交钩子 + 自定义规则 |
| 异步最佳实践 | 基础 async/await | 完整并发模型与错误链路 |
| 支持 | 社区支持 | 优先支持 |
本工具基于Markdown指令驱动Agent,实际文件修改由Agent执行。工具仅提供建议与代码片段,是否落盘由用户与Agent配置决定。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| ESLint | npm包 | 可选 | npm i -D eslint |
| Prettier | npm包 | 可选 | npm i -D prettier |
| Node.js | 运行时 | 可选 | nodejs.org 下载 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |