【问题标题】:How to make Firefox's scratchpad behave as an online JS console?如何让 Firefox 的暂存器充当在线 JS 控制台?
【发布时间】:2018-03-18 22:08:54
【问题描述】:

我想让浏览器暂存器充当在线控制台的原因是因为当我在 Eloquent JS code sandbox 中执行以下代码时:

var foo = typeof "abc";
console.log(foo);

按预期返回:string。但是,在 Firefox (45 ESR) 暂存器中返回完全相同的代码:undefined。这种行为差异只是让我对 Firefox 上的结果保持警惕。

试图获得所需的暂存器行为,并查看有关此主题的 MDN article,它说:

您可以编写、运行和检查与网页交互的代码的结果。

基本上表明执行的代码与您当前所在的页面相关联(对此不完全确定)。基于此,在同一篇文章的另一部分进一步指出,要在 browser 上下文而不是 page 上下文中运行代码,chrome 和应该启用附加调试选项,但我没有成功。

知道为什么会出现这种差异吗?它已在 Chrome 61、Safari 8 和 6 上成功测试,所以我想知道它是否可能是隐藏功能/错误配置或最终是错误。非常感谢您的帮助!

【问题讨论】:

  • 你在哪里看到undefined?它为我将string 记录到控制台。你说它返回 undefined,如果你说的是真的,那是正确的。 console.log 不返回任何内容(这意味着它默认返回 undefined)。
  • 是的,我只能想象它向您显示了最后一个表达式/语句的返回值,正如我所说,undefined 对应于console.log,所以这是正确的。
  • 嗨@Felix,当我在暂存器窗口中单击 Display 而不是 Run Code 时它会出现(直到 47 版本没有嵌套在开发者工具上)。你要截图吗?我注意到您提到了控制台而不是暂存器,但我在两种环境中得到了完全相同的结果。不过,我将尝试更新的 Firefox 版本。感谢您的帮助!

标签: javascript firefox scratchpad


【解决方案1】:

console.log() 不返回任何值,因此它显示“未定义”

alert(console.log("anything")); //undefined

要显示控制台函数的输出,请打开控制台本身(不是暂存器)

或从代码中删除 console.log() 以显示 foo 值,witch 是“字符串”

总结: foo 是字符串 console.log(foo) 未定义

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多