为什么这个片段给我的行号不正确?

2023-12-30

我抛出一个错误,我注意到 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(使用前将#替换为@)

为什么这个片段给我的行号不正确? 的相关文章

随机推荐