在Chrome控制台中访问上次记录的值


71

当我直接在Chrome控制台中评估表达式时,例如

1 + 1

然后我可以使用

$_

在此处输入图片说明

但是,当值是来自应用程序内部的console.log的结果,而不是直接在控制台中键入的表达式时,我无法使用$ _访问该值。

在此处输入图片说明

有没有一种方法可以访问最后计算的表达式,而不管它来自何处?

Answers:




3

当计算表达式为例如对象时,c&p真的是一个选择吗?
罗宾·德雷克斯勒

1
console.log()输出一个字符串-因此,不能从中获取对象。您应该为此使用调试器。
laktak

2
console.log()至少在Chrome中输出字符串不是正确的。它可以接受任意对象,并且显然保留了对实际对象的引用,因为它允许您检查对象及其子对象的属性到任意深度。要对此进行测试,请console.log((function(){var o={};o.recurse=o;return o;})());在控制台中评估类似内容。
user4815162342

@ user4815162342很不错的发现-但是,它仍然只允许您查看对象,而不是对其进行分配。
laktak 2014年

@hcris它还给人希望,以某种方式可能获得该对象。:)
user4815162342'1

1

解决方法是在全局名称空间中定义一个变量。想必您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在控制台中键入以快速获取其值并使用它。


1
或更短时间console.log((window.temp = local_variable))
Jason Goemaat

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.