JavaScript多行注释中的@符号有什么作用?
那些@param/@returns不是JavaScript语法,是JSDoc注释!
你观察得很仔细——这些带@符号的标签完全不是JavaScript原生语法,它们属于JSDoc,一套专门为JavaScript设计的结构化文档注释规范。下面给你拆解一下背后的原理:
1. 本质还是注释,JS引擎完全忽略
从语法层面来说,这些@开头的内容都在/** ... */的多行注释块里,JavaScript引擎执行代码时会直接跳过整个注释块,不会对代码逻辑产生任何影响。你在Git或编辑器里看到它们被特殊高亮,是因为主流代码编辑器(VS Code、WebStorm等)和Git的语法高亮工具都内置了JSDoc的识别规则,会把这些标签单独着色,让注释的结构更清晰,看起来不像普通注释而已。
2. 它们的实际功能:服务于工具链和开发者
虽然JS引擎不识别,但这些标签是给开发者和开发工具看的,有非常实用的作用:
- 编辑器智能提示:当你在代码里调用
isNodeList函数时,编辑器会读取@param和@returns的信息,自动弹出提示:告诉你需要传入任意类型的参数,返回值是布尔值,大幅提升开发效率。 - 自动生成API文档:用JSDoc工具(比如官方的jsdoc-cli)扫描你的代码,可以自动生成格式化的HTML/Markdown API文档,不用手动写函数说明文档。
- 静态类型校验:配合TypeScript、ESLint的类型检查插件,JSDoc标签可以充当类型提示,提前发现参数类型不匹配的问题,比如你传了一个字符串给需要节点的函数,工具会给出警告。
结合你的代码例子来看
你贴的这段代码里:
@param {*} val:说明函数接受一个任意类型的参数val@returns {Boolean}:说明函数的返回值是布尔类型
这些信息既让其他开发者能快速理解函数的用法,也能让工具提供更智能的辅助。
内容的提问来源于stack exchange,提问作者yoursweater
相关产品推荐
相关产品推荐

