我不确定,如果这确实是一个问题或更多的观察 - 甚至是一个错误。
在我的javascript代码中,我使用了许多console.log和console.group语句来跟踪内部发生的事情。代码也进行了一些递归,因此使组的缩进正确非常重要。
//working dummy code illustrating the problem var data=3; var demo=(function(){ var internal=function(){ console.group("internal"); console.log("some smart shit"); console.groupEnd(); } console.group("inside the closure1"); console.group("inside the closure2"); internal(); if (data===5){ console.log("funny Things"); } console.groupEnd(); console.log("some smart shit 1"); console.groupEnd(); }( data )); console.log("Indentation correct?!");
如果执行了所有代码块,则控制台中内置的树会变深,但会将气泡返回到层次结构的根级别。现在,如果一个块没有执行另一个块并且没有被记录到控制台,则在离开代码块后,缩进将保持为+1。
将obove虚拟代码中的
var data=5更改为
var data=3,您会看到缩进错误!
更一般地说; 每次调用console.group时都不使用console.log来嵌套console.group导致错误缩进!
我知道,ChromeDevTeam在实施chromedevtools时已经引用firebug console api并假设此行为在firebug中是相同的。
我现在质疑是否有人经历过同样的行为? 有人知道这种行为是否符合预期? 最重要的是;有没有人知道解决这个缩进问题的解决方法? 当然,每当我打开一个小组时,我都可以使用console.log,但如果你问我,这不是真的想法。
感谢有关此主题的任何有用信息,对不起,如果这个问题有点蹩脚:(
//编辑Nr2 - >我已经更新了代码来说明问题。它现在会产生所描述的虚假缩进(违背我的预期)。