Javascript" SyntaxError:意外的令牌"

时间:2016-12-14 01:22:58

标签: javascript

好的,所以我已经搜索了这个并多次查看我的代码,但我似乎无法弄清楚导致这种情况的原因。似乎通常发生在有人在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

我从朋友在测试代码时拍摄的截图中获取了此代码(但他实际上从未将文件发送给我)。这不是完整的代码,而只是它似乎有一个问题的一部分,但其余的代码基本上是相同的(有些是随机选择,而有些则不是)。

2 个答案:

答案 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 {

}

Why I put brackets in.