参数列表后面的JavaScript:SyntaxError:missing)

Ism*_*ous 34 javascript syntax-error javascript-events

我收到错误:

SyntaxError: missing ) after argument list
Run Code Online (Sandbox Code Playgroud)

有了这个javascript:

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        }
    }, false);
};
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?

Ted*_*opp 39

你的功能有额外的结束}.

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        }        // <== remove this brace
    }, false);
};
Run Code Online (Sandbox Code Playgroud)

你真的应该使用类似JSHintJSLint的帮助找到这些东西.这些工具与许多编辑器和IDE集成,或者您只需将代码片段粘贴到上述网站中并要求进行分析.


Nop*_*ope 12

你有一个额外}的许多,如下所示:

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        } // <-- REMOVE THIS :)
    }, false);
};
Run Code Online (Sandbox Code Playgroud)

这些东西的一个非常好的工具是jsFiddle.我创建了一个无效代码的小提琴,当单击TidyUp按钮时,它会格式化您的代码,如果有任何可能的错误,缺少大括号,则会更清楚.


演示 - 你的小提琴代码,玩得开心:)



Jos*_*Gee 6

只是发布以防其他人有同样的错误......

我在“异步”函数之外使用“等待”,无论出于何种原因,都会导致“参数列表后缺少)”错误。

解决方案是使函数异步

function functionName(args) {}
Run Code Online (Sandbox Code Playgroud)

变成

async function functionName(args) {}
Run Code Online (Sandbox Code Playgroud)