这是一个 SSCCE。
考虑以下代码:
<html>
<head>
<script type="text/javascript">
window.addEventListener("load", eventWindowLoaded, false);
var eventWindowLoaded = function () {
console.log('event window loaded');
};
</script>
</head>
<body>
</body>
</html>
它不起作用,但问题不在于如何修复它。相反,问题是当 eventWindowLoaded
变量尚未分配时,为什么 JavaScript 会悄无声息地失败。在 Chrome 中调试时,我没有看到控制台上打印任何内容,也没有迹象表明出现问题。代码只是默默地失败了。我必须使用哪些选项/工具来确保在开发 JavaScript 时失败得比这更严重? ("use strict";
也什么都不做)。
最佳答案
正如您似乎了解提升(根据反对票判断)一样,您知道为什么您的代码无法正常工作。因此,为了确保 JS 更加失败,您可以将代码更改为:
window.addEventListener("load", eventWindowLoaded || function(){ throw new Error('An error message' )}, false);
关于javascript - 在这种情况下如何使 JavaScript 以更明显的方式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34357063/