好的,所以我已经搜索了这个并多次查看我的代码,但我似乎无法弄清楚导致这种情况的原因。似乎通常发生在有人在if语句之后加上分号但我没有任何if语句之后(除非我是盲人或其他什么),所以我不知道。我使用Javascript和node.js编写一个简单的Discord bot。每当我进入终端启动机器人时,我都会收到此错误:
/Users/Nyro/Desktop/Thax/digger.js:64 其他 ^^^^ SyntaxError:其他意外的令牌 at Object.exports.runInThisContext(vm.js:76:16) 在Module._compile(module.js:542:28) 在Object.Module._extensions..js(module.js:579:10) 在Module.load(module.js:487:32) 在tryModuleLoad(module.js:446:12) 在Function.Module._load(module.js:438:3) 在Module.runMain(module.js:604:10) 在运行时(bootstrap_node.js:394:7) 在启动时(bootstrap_node.js:149:9) 在bootstrap_node.js:509:3
(我不确定它下面的所有内容是否对错误很重要,但是他们在那里)。 第64行也与代码中的许多其他行相同(因为很多内容对于不同的单词都是重复的)所以我不知道为什么它似乎专注于该区域。无论如何,这是该领域的代码:
if ((messageauthor == botname) == false){ // to prevent spamming to oblivion
if (dofilter('cupcake'))
{
sendimpeccablemessage('Message1');
}
else
if (dofilter('linus'))
{
if (Math.floor(Math.random()*3))
{sendimpeccablemessage('Message2');}
else
{sendimpeccablemessage('Message3');}
else
{sendimpeccablemessage('Message4');}
}
else
我从朋友在测试代码时拍摄的截图中获取了此代码(但他实际上从未将文件发送给我)。这不是完整的代码,而只是它似乎有一个问题的一部分,但其余的代码基本上是相同的(有些是随机选择,而有些则不是)。
答案 0 :(得分:2)
这里有两个其他陈述:
if (Math.floor(Math.random()*3))
{sendimpeccablemessage('Message2');}
else
{sendimpeccablemessage('Message3');}
else
{sendimpeccablemessage('Message4');}
中间应该是else if
或删除最后一个。
答案 1 :(得分:1)
你有2个其他陈述。您可以执行if / else if / else,但不能执行if / else / else。
if (Math.floor(Math.random()*3))
{sendimpeccablemessage('Message2');}
else
{sendimpeccablemessage('Message3');}
else
{sendimpeccablemessage('Message4');}
格式化也令人困惑。我总是把括号括起来,因为它显示了执行顺序。
if ((messageauthor == botname) == false) {
// to prevent spamming to oblivion
if (dofilter('cupcake')) {
sendimpeccablemessage('Message1');
}
else {
if (dofilter('linus')) {
if (Math.floor(Math.random()*3)) {
sendimpeccablemessage('Message2');
}
else {
sendimpeccablemessage('Message3');
}
//else{
// sendimpeccablemessage('Message4');}
}
}
}
else {
}