我不确定这是否真的是一个问题或更多的观察 - 甚至是一个错误。
在我的 javascript 代码中,我使用了许多 console.log 和 console.group 语句来跟踪内部发生的事情。该代码还进行了一些递归,因此使组的缩进正确变得非常重要。
//说明问题的工作虚拟代码 变量数据=3; 变种演示=(函数(){ 变种内部=函数(){ console.group("内部"); console.log("一些聪明的狗屎"); 控制台.groupEnd(); } console.group("闭包内1"); console.group("闭包内2"); 内部的(); 如果(数据===5){ console.log("有趣的事情"); } 控制台.groupEnd(); console.log("一些聪明的狗屎 1"); 控制台.groupEnd(); }( 数据 )); console.log("缩进正确?!");
如果所有代码块都被执行,则控制台中构建的树会变深,但会冒泡回到层次结构的根级别。现在,如果一个块不执行另一个块并且 没有任何内容记录到控制台,则缩进在离开代码块后保持为+1。
更改
变量数据=5在上面的虚拟代码中
变量数据=3你会发现缩进是错误的!
更一般地说;每次调用console.group时嵌套console.group而不使用console.log会导致错误缩进!
我知道,ChromeDevTeam 在实现 chromedevtools 时引用了firebug 控制台 api,并假设这种行为在 firebug 中是相同的。
我现在质疑是否有人经历过同样的行为?有人知道这种行为是否符合预期吗?最重要的是;有谁知道解决此缩进问题的解决方法?当然,我可以在每次打开一个组时 console.log 一些东西,但如果你问我,这不是真正的想法..
感谢您提供有关此主题的任何有用信息,抱歉,如果这个问题有点蹩脚:(
//Edit Nr2 -> 我更新了代码来说明问题。它现在生成所描述的错误缩进(与我的预期相反)。