检测 Javascript 卡住位置的技术?

Technique to detect where Javascript gets stuck?

我正在调试未混淆的 Javascript 代码。在某些时候,代码会陷入某个永不返回的函数或无限循环中。找到这部分代码的最快方法是什么?我认为有比添加一堆 breakpoins/prints.

更好的方法

我正在使用 Chrome 开发者工具。

如果您确实在打开控制台的情况下处于循环状态,请转到“来源”选项卡,然后单击“暂停”图标。代码将暂停,您将看到它卡在哪里 :)

如果你打开devtools等待代码进入无限循环,你可以点击devtools中的暂停按钮,这会在循环中的某个地方暂停代码。

例如,我用这段代码写了一个页面:

setTimeout(() => {
    let n = 0;
    while (isFinite(n)) {
        n = n + 1;
    }
}, 800);

和 运行 它,打开 devtools,然后单击暂停按钮。它暂停了 while:

中的代码