0

我不确定这是否真的是一个问题或更多的观察 - 甚至是一个错误。

在我的 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 -> 我更新了代码来说明问题。它现在生成所描述的错误缩进(与我的预期相反)。

4

1 回答 1

1

我在这个问题上提交了一个错误:https ://bugs.webkit.org/show_bug.cgi?id=63455

于 2011-06-27T15:10:43.890 回答