为什么在控制台中两次显示`return statement之后的不可访问代码警告? (Firefox 72.0.2,Win 10)

问题描述 投票:-1回答:1

我正在Win 10上运行Firefox 72.0.2。这更多是关于如何正确使用内置调试器或开发人员工具的问题。加载test.html时,控制台现在两次显示unreachable code after return statement警告。return处于切换用例构造,其本身位于函数importExport中。importExport函数仅在几个静态html span元素的onkeypress和onclick事件中引用:onkeypress="this.onclick();event.preventDefault();" onclick="importExport('import','options');"onkeypress="this.onclick();event.preventDefault();" onclick="importExport('export','options');"通过在函数的开头添加console.log('...');,我可以看到它从未被调用过。

有什么方法可以使Firefox向我显示,为什么此警告消息现在显示两次? (我很确定这不是不久前。)

> unreachable code after return statement test.html:2246:4
> Passwort-Felder sind auf einer unsicheren (http://) Seite vorhanden. Dies ist ein Sicherheitsrisiko, durch das Zugangsdaten gestohlen werden können. test.html 
> unreachable code after return statement test.html:2246:4

编辑:好像已经过去了:现在仅再次显示警告。尽管这不会改变问题,但是控制台还是调试器是否有机会找出为什么两次显示警告。

javascript console compiler-warnings firefox-developer-tools
1个回答
0
投票

解析代码(即由浏览器引擎读取和分析)之后,以及执行代码后,均会针对同一行代码显示错误消息。即在您的情况下,即单击元素并执行importExport()功能。

这是一个简单的示例:

function x() {
  return;
  let foo="bar";
}
div {
  width: 100px;
  height: 100px;
  background-color: skyblue;
  display: flex;
  justify-content: center;
  align-items: center;
}
<div onclick="x()">Click me</div>

Warning for unreachable code after return statement

请注意,警告已经显示在之前,您单击该元素。单击它后,它将第二次被记录(由警告右侧的计数器指示)。

您可以通过仅使用该函数而无需任何调用来进行验证。如果将以下代码粘贴到地址栏中,也会记录警告:

data:text/html,<script>function x(){return;let foo="bar";}</script>

有关消息本身的更多信息,请read the related MDN page,该消息从控制台中消息旁边的“了解更多”链接链接至。

© www.soinside.com 2019 - 2024. All rights reserved.