我抛出一个错误,我注意到 Stackoverflow 和 JSFiddle 在堆栈跟踪上给了我不正确的行号。
function foo () {
let stackTrace = (new Error()).stack;
console.log(stackTrace);
}
foo();
单击“运行代码片段”给我这个输出,
Error
at foo (https://stacksnippets.net/js:13:20)
at https://stacksnippets.net/js:18:1
正如您在输出中看到的,没有13
我的代码上的行。
这是什么原因造成的呢?
我使用的是最新的 Chrome 浏览器版本。
行号是从文件的开头开始计算的,而不是从脚本的开头开始计算。所以当 JavaScript 处于<script>
标签而不是外部.js
文件中,行号是从 HTML 文档的开头开始计算的。这确保了filename:linenumber
当 HTML 中有多个脚本时,引用是唯一的。
Stack Snippets 将脚本放入类似的标签中,然后将其加载到 iframe 中,这样您就可以获得更高的计数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)