如何在Chrome调试器中检查JavaScript函数返回值?

时间:2012-03-12 06:05:49

标签: javascript google-chrome google-chrome-devtools

来自gdb,它会在完成时打印函数的返回值。有没有办法从Chrome调试器获取此信息而不更改正在调试的源?

7 个答案:

答案 0 :(得分:24)

A fix for this自2013年11月5日开始实施,但显然只是在我写这篇文章时才在Chrome Canary中发布。 (我在33.0.1719.0中看到它,但在Chrome Beta版32.0.1700.19测试版中没有看到它。)

如果您正在运行的版本确实拥有它,那么当您单步执行return语句时,调试器的Scope Variables本地范围包含一个带有值的<return>条目。

(我需要使用Canary进行主要调试,但在问题中看到引用的notice之前没有注意到<return>条目的存在!)

答案 1 :(得分:6)

我正在使用Chrome版本57.0.2987.98 beta(64位),它就在那里,真的很高兴。这是一个截图:

enter image description here

答案 2 :(得分:5)

我的Chrome版本是41.0.2272.118米。这是为什么你应该在一个单独的行上放置复杂的return语句的一个很好的理由。如果您在返回后的任何行上添加断点,Chrome将在断点时添加(在此示例中)Sources面板的“Scope Variables”窗格的“Local”节点下的“&lt; return&gt;:true”叶被击中了。

function bar() {
   return true;
}    
(function foo() {
   return bar();
})(); // Place breakpoint here

答案 3 :(得分:3)

不,目前还没有办法。

然而,它有一个open enhancement request。它被分配了,在撰写本文时,它正在等待this V8 enhancement

答案 4 :(得分:1)

如果你设置一个断点,你可以将鼠标悬停在变量上,它会显示这些值是什么 - 这对你想要做的事情有用吗?

答案 5 :(得分:0)

也许会这样做?

1。)查看页面来源。

2。)查找功能定义并将其复制到剪贴板。

3.。)修改剪贴板上的函数定义,以记录它将要返回的值。 (即console.log(x); return x;

4.。)将修补后的函数定义粘贴到控制台中并运行它。这将覆盖现有的功能。

5.。)触发功能。

答案 6 :(得分:0)

在Chrome中仍然无法实现,但在Firefox 24+中也是如此。你需要从函数中跳出(Shift + F11),它将显示返回值或函数作用域中抛出的异常。