47

我收到错误消息:

SyntaxError: missing ) 在参数列表之后

使用这个 javascript:

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

这个错误是什么意思?

4

6 回答 6

50

你的函数有一个额外的结束}

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);
};

你真的应该使用 JSHint 或 JSLint 之类的东西帮助找到这些东西。这些工具与许多编辑器和 IDE 集成,或者您可以将代码片段粘贴到上述网站并请求分析。

于 2013-03-21T21:28:11.717 回答
16

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

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);
};

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


演示- 你的代码在小提琴中,玩一下 :)


于 2013-03-21T21:28:55.773 回答
2

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

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

解决方案是使函数异步

function functionName(args) {}

变成

async function functionName(args) {}
于 2021-01-27T02:10:08.467 回答
0

与 Josh McGee 类似,我试图await在全局范围内使用,因为它不是async函数,所以会引发错误。有关解决方案,请参见此处

于 2021-05-26T09:51:23.467 回答
0

此错误可能是您的 Android 版本(特别是如果您使用的是 Web 视图),请尝试像旧版本的 JavaScript 引擎一样更改您的代码,例如:

   .then(function(canvas){
            //canvas object can gained here
   });
于 2022-02-09T15:37:12.517 回答
-1

我遇到了同样的错误,我发现随着 ES6 和字符串插值的使用增加,越来越多的人会开始犯我在使用Template Literals时犯的同样错误:

最初,我记录了这样的语句:

console.log(`Metadata: ${data}`);

但后来改变它并忘记删除${}

console.log('Metadata: ' + JSON.stringify(${data}));
于 2021-04-22T18:47:01.513 回答