console.group 和 console.groupend 可创建可折叠日志分组,支持嵌套、混合日志类型及性能测量,提升调试信息层次与可读性。

用 console.group 和 console.groupEnd 可以在浏览器控制台中创建可折叠的日志分组,让调试信息更清晰、有层次。
基础用法:包裹日志形成折叠组
调用 console.group(label) 开启一个新组,后续所有 console.log(及 warn、error 等)都会缩进并归属到该组里,直到遇到对应的 console.groupEnd()。
- label 是可选的字符串,显示在折叠项标题上,比如
"用户登录流程" - 每个
group必须配对groupEnd,否则可能影响后续分组或报错(尤其嵌套时) - 支持多层嵌套,每层独立折叠,适合表达逻辑层级,如“请求 → 响应解析 → 数据处理”
嵌套分组:体现执行流程深度
多个 console.group 可以嵌套使用,形成树状结构。浏览器控制台会自动为每层添加缩进和折叠箭头。
- 例如调试异步链路时,外层标记“API 调用”,内层分别标记“请求发送”、“响应接收”、“错误处理”
- 注意避免忘记闭合某一层,否则后续日志可能意外进入深层分组,导致视觉混乱
- 可在关键节点加
console.groupCollapsed()默认收起该组,减少初始干扰
配合其他方法提升可读性
console.group 不限制内部使用的日志类型,可混合使用 log、table、dir 等,增强信息表达力。
- 在组内用
console.table(data)展示数组或对象,比纯log更直观 - 用
console.time("xxx")+timeEnd测量某段组内逻辑耗时,标签名可与 group label 保持一致 - 调试完成后建议移除或用条件开关包裹(如
if (DEBUG) { ... }),避免上线后污染控制台
实际小例子
模拟一次表单提交的调试输出:
console.group("✅ 表单提交");
console.log("开始验证字段");
console.group("? 验证邮箱");
console.log("格式正确");
console.log("域名已存在");
console.groupEnd();
console.group("? 验证密码");
console.warn("长度不足8位");
console.groupEnd();
console.log("验证通过,发起请求");
console.groupEnd();
这样在控制台看到一个带 ✅ 图标的可折叠项,点开才看到细节,主流程一目了然。











