Chrome 和 Firefox 错误报告之间的差异

Art*_*roO 4 javascript jquery

我有以下代码:

<a href='#' class='link'>Click Me</a>
<script type="text/javascript">
$(".link").on('click', function(){
    event.preventDefault();
    console.log('This will appear on Chrome, but not in Firefox');
});
</script>
Run Code Online (Sandbox Code Playgroud)

显然代码中有错误,因为我在函数参数中没有“event”变量。令人惊讶的是,Chrome 控制台不会报告任何错误,并且会执行 console.log 行。如果是 Firefox,它将抛出以下错误:“ReferenceError:事件未定义”,并将停止代码执行。

为什么Chrome浏览器没有报错?是否还有其他例外情况,Chrome 会忽略明显有错误的代码?

jsfiddle: https: //jsfiddle.net/ArturoO/L3hym4r2/3/ 提前致谢!

小智 5

原因是 Chrome 和 IE 都有一个全局event对象。这意味着您的代码基本上是使用window.event而不是缺少的参数。

所以从 Chrome 的角度来看,这段代码实际上根本没有 bug。event它按预期使用全局。

在某些浏览器中定义了其他全局变量,而在其他浏览器中则没有。这些不是错误,因为允许主机环境创建自己的主机对象。