【发布时间】:2021-02-26 15:46:00
【问题描述】:
我抛出一个错误,我注意到 Stackoverflow 和 JSFiddle 都在堆栈跟踪上给了我不正确的行号。
function foo () {
let stackTrace = (new Error()).stack;
console.log(stackTrace);
}
foo();
点击“运行代码 sn-p”给我这个输出,
Error
at foo (https://stacksnippets.net/js:13:20)
at https://stacksnippets.net/js:18:1
正如您在输出中看到的,我的代码中没有 13 行。
是什么原因造成的?
我使用的是最新的 Chrome 浏览器版本。
【问题讨论】:
-
很可能是因为这两个运行时环境都是沙盒环境。
-
@ScottMarcus 我检查了 JSFiddle 的 iFrame。它使用
-
当你在控制台中点击
js:13(真正的,不是sn-p下面的那个),你会看到行号。它从 HTML 的开头开始计数,而不是<script>标记的开头。 -
@Barmar 是的。我即将写一个答案来检测返回值是否被丢弃。这个问题对那个人有帮助。
标签: javascript