JavaScript注释是提升可读性、协作效率和维护性的关键,单行注释//用于局部说明,多行注释/.../用于模块级描述,应说明“为什么”而非重复代码,避免嵌套与堆砌,统一风格并配合工具管理。

JavaScript中注释不是可有可无的装饰,而是代码可读性、协作效率和后期维护的关键支撑。写对注释,比“多写”更重要。
单行注释:用//快速说明局部逻辑
单行注释以两个斜杠//开头,作用范围仅限当前行。它适合解释某一行代码的意图、临时禁用代码、或标注小范围的注意事项。
- 写在代码上方时,建议空一行分隔,提升视觉层次;写在行尾时,前面至少留两个空格,避免紧贴代码造成阅读干扰
- 避免堆砌无意义内容,例如// i++这种重复代码的注释没有价值;应说明“为什么”——比如// 跳过已处理的偶数索引
- 调试时常用//临时注释掉某行,但上线前务必清理,防止逻辑遗漏
多行注释:用/* ... */描述模块级意图
多行注释以/*开始、*/结束,可跨行使用。它更适合说明函数整体用途、算法思路、参数约束或兼容性说明等稍复杂的上下文。
- 函数顶部推荐使用多行注释概括“做什么、为什么、输入输出”,例如:
/*
计算用户积分有效期截止时间
@param {number} baseDate - 基准时间戳(毫秒)
@returns {number} 过期时间戳,精确到天
*/ - 不要嵌套使用/* ... /* ... */ ... */,JavaScript不支持嵌套多行注释,会导致语法错误
- 大段临时屏蔽代码可用/* ... */,但长期不用的代码应直接删除,注释不是代码仓库
注释不是替代好命名,而是补充不可见信息
变量名userActiveDays比days更清晰,这时就不必加// 用户活跃天数。注释真正该承担的是那些无法从代码本身直接读出的信息:
立即学习“Java免费学习笔记(深入)”;
- 特殊处理的原因(如// Safari 15.4 中 Date.parse 对 ISO 格式存在时区解析偏差)
- 外部依赖或副作用(如// 修改全局配置,影响后续所有 API 请求头)
- 待办事项(如// TODO: 后续接入缓存层,避免高频调用),但需配合团队约定定期清理
团队协作中,注释风格要统一
单行注释是否在行尾加空格?多行注释的星号是否对齐?这些细节看似微小,却直接影响代码库的整体可读性。建议在项目初期就明确并纳入 ESLint 规则(如spaced-comment)。
- 鼓励用// TODO、// FIXME等标记约定短语,便于工具扫描和追踪
- 避免使用模糊词汇如“这里很关键”“注意!”——关键在哪?要注意什么?必须具体
- 中文注释无需翻译成英文,但术语保持一致(如统一用“token”而非混用“令牌”“凭证”)










