Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript“SyntaxError:意外标记else”_Javascript - Fatal编程技术网

Javascript“SyntaxError:意外标记else”

Javascript“SyntaxError:意外标记else”,javascript,Javascript,好吧,我已经搜索了很多次了,我的代码也检查了很多次,但我似乎不知道是什么原因造成的。这似乎通常发生在有人在if语句后加上分号,但我在any if语句后没有分号,除非我是盲人或其他我不知道的东西。我正在使用Javascript和node.js编写一个简单的Discord bot。每当我进入终端启动机器人时,我总是会遇到以下错误: /Users/Nyro/Desktop/Thax/digger.js:64 其他的 ^^^^SyntaxError:意外的标记else 在Object.exports.r

好吧,我已经搜索了很多次了,我的代码也检查了很多次,但我似乎不知道是什么原因造成的。这似乎通常发生在有人在if语句后加上分号,但我在any if语句后没有分号,除非我是盲人或其他我不知道的东西。我正在使用Javascript和node.js编写一个简单的Discord bot。每当我进入终端启动机器人时,我总是会遇到以下错误:

/Users/Nyro/Desktop/Thax/digger.js:64 其他的 ^^^^SyntaxError:意外的标记else 在Object.exports.runInThisContext vm.js:76:16 在Module._编译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.\u load Module.js:438:3 在Module.runMain Module.js:604:10 在运行bootstrap_node.js:394:7时 启动时引导_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

我从我朋友在测试代码时拍摄的屏幕截图中得到了这段代码,但他实际上从未向我发送过该文件。这不是完整的代码,但只是它似乎有问题的一部分,但代码的其余部分基本上是相同的,有些代码有随机选择,而另一些则没有。

您有两条else语句。你可以做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 {

}

这里还有两种说法:

if (Math.floor(Math.random()*3))
     {sendimpeccablemessage('Message2');}
  else
     {sendimpeccablemessage('Message3');}
  else
     {sendimpeccablemessage('Message4');}

中间应该是else-if,或者去掉最后一个。

为什么你的答案中存在与问题中相同的问题?