当我直接在Chrome控制台中评估表达式时,例如
1 + 1
然后我可以使用
$_
但是,当值是来自应用程序内部的console.log的结果,而不是直接在控制台中键入的表达式时,我无法使用$ _访问该值。
有没有一种方法可以访问最后计算的表达式,而不管它来自何处?
Answers:
将其记录到控制台后,您可以右键单击它并获得“存储为全局功能”选项。单击此按钮将定义一个新变量,例如“ temp1”,它将指向该变量。这是一个正在运行的视频(不是我的)。
console.log()
至少在Chrome中输出字符串不是正确的。它可以接受任意对象,并且显然保留了对实际对象的引用,因为它允许您检查对象及其子对象的属性到任意深度。要对此进行测试,请console.log((function(){var o={};o.recurse=o;return o;})());
在控制台中评估类似内容。
解决方法是在全局名称空间中定义一个变量。想必您console.log(local_variable)
在函数内。
<script>
var global_variable = null;
function some_function() {
var local_variable = 0;
global_variable = local_variable;
console.log(local_variable);
}
</script>
在这里,当some_function()
被调用时,您的local_variable
将被记录下来,但是您可以global_variable
在控制台中键入以快速获取其值并使用它。
console.log((window.temp = local_variable))
你可以通过设置断点,在执行Chrome的DevTools的任何时候访问任何评估表达式。
您记录的表达式在控制台中应具有可点击的行号-单击链接,然后在代码行上设置一个断点(应为 console.log
)。
有关断点的完整指南:https :
//developers.google.com/web/tools/chrome-devtools/javascript/breakpoints