ESLint报‘event已定义但未使用’,代码需优化还是仅忽略警告?
问题分析与修复方案
首先明确:ESLint的这个警告不是过于严格,你的代码确实存在冗余问题——DOMContentLoaded回调里的event参数被定义了,但完全没被使用,这就是警告的原因。
代码里的冗余点
看这段代码:
window.addEventListener('DOMContentLoaded', (event) => { // 整个回调函数里根本没用到event变量 trigger.addEventListener("click", function(event) { event.preventDefault(); audio.play(); }, false); });
这里第一个event参数(DOMContentLoaded的回调参数)完全是多余的,因为你既没读取它的属性,也没调用它的方法,属于不必要的代码。
正确的修复方式(比加注释掩盖警告更合理)
直接删掉那个没用的event参数,代码会更简洁干净:
var trigger = document.getElementById("hello"); var audio = new Audio('audio/hello.mp3'); window.addEventListener('DOMContentLoaded', () => { trigger.addEventListener("click", function(event) { event.preventDefault(); audio.play(); }, false); });
为什么不推荐用注释掩盖?
ESLint的no-unused-vars规则是帮你清理冗余代码、避免潜在的逻辑混乱(比如你可能本来想用这个参数但忘了写),掩盖警告相当于忽略了代码里的小问题,长期来看不利于代码维护。
内容的提问来源于stack exchange,提问作者user1406440
相关产品推荐
相关产品推荐

