2016-12-14 70 views
-5

好吧,所以我已經搜索了這個,並多次查看我的代碼,但我似乎無法弄清楚是什麼原因造成這種情況。看起來好像它通常發生在有人在if語句後面加分號時,但在if語句之後我沒有任何語句(除非我是盲人或其他人),所以我不知道。我使用Javascript和node.js編寫了一個簡單的Discord bot。每當我進入終端啓動機器人我不斷收到此錯誤:Javascript「SyntaxError:意外的令牌其他」

/Users/Nyro/Desktop/Thax/digger.js:64 else ^^^^ SyntaxError: Unexpected token else at Object.exports.runInThisContext (vm.js:76:16) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:394:7) at startup (bootstrap_node.js:149:9) at 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 

我從一個屏幕截圖,同時測試代碼(但是他從來沒有真正發過來的文件),我的朋友把這個代碼。這不是完整的代碼,而只是它似乎有問題的一部分,但其餘的代碼基本上是相同的東西(一些有隨機選擇,而另一些則沒有)。

回答

1

您有2條else語句。你可以做if/else if/else,但如果/ 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.

+0

爲什麼你的問題中存在同樣的問題? –

+0

我正在重新格式化它,我錯過了它。 – kemiller2002

2

你這裏有兩個else語句:

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

中間應該是一個else if或刪除最後一個。