数码知识屋
霓虹主题四 · 更硬核的阅读氛围

单行注释和多行注释到底有啥区别?写代码时别再混用了

发布时间:2026-02-10 12:41:07 阅读:9 次

代码时随手加个注释,本是件再自然不过的事。但你有没有遇到过:明明想注释掉三行代码,却只用//,结果后两行照常执行;或者想快速禁用一段逻辑,用/* */包起来,却发现中间某处多了个*/,整个文件编译报错?这些小坑,往往就出在没搞清单行注释和多行注释的底层规则。

单行注释:从//开始,到换行结束

单行注释以两个斜杠 // 开头,它只对当前行起作用——从//开始,一直到这一行末尾的所有内容,都会被忽略。哪怕后面跟着100个汉字、5个空格、甚至一个未闭合的引号,都不影响。

let count = 10; // 这里是注释,count不会被影响
console.log(count); // 输出10
// let name = "Alice"; 这整行都被跳过,包括变量赋值

注意:它不认缩进,也不看括号配对,只看换行。所以即使你在if语句里写:if (x > 0) // 判断是否为正数,那后面的{ ... }依然会执行,因为注释没覆盖大括号。

多行注释:/* 到 */之间全消失

多行注释用/*开头、*/结尾,中间可以跨任意行,只要没提前遇到*/,内容就一直被当注释处理。

/*
这是第一行注释
这是第二行
let temp = 999; // 这行也不会运行
*/
console.log("hello");

但它有个致命弱点:不能嵌套。比如你写:/* 外层 /* 内层 */ 结束外层 */,编译器会在第一个*/就认为注释已结束,后面的内容就暴露出来了,容易引发语法错误。

实战中怎么选?看场景

临时调试时,喜欢用//快速屏蔽一行,比如把console.log("debug")变成// console.log("debug"),回车一敲就搞定;写函数说明或模块头部描述,习惯用/* ... */包一大段文字,清晰又省事。

但要注意:有些语言(比如Python)压根没有//,它用#作单行注释;而SQL里--才是单行,/* */照样能多行。JavaScript、Java、C/C++这些才同时支持///* */

一个小陷阱提醒

在JS里这样写:const arr = [1, 2, /* 3, 4, */ 5];,看着像注释掉中间两个数,其实没问题;但换成const arr = [1, 2, // 3, 4, 5];,那5就孤零零挂在下一行,语法上依然合法——可如果下一行其实是returnif,就可能悄悄改变程序逻辑。