由于某些原因,已定义变量变得未定义

时间:2019-09-21 19:20:45

标签: javascript

我在这里有此代码:

if (message.channel.id === "624637964827492352") {
  if (message.content === '/start'){
    var maf = 1
    console.log('Game Started')
    console.log(maf)
  }
  if (message.content === '/in'){
    console.log(maf)
  }
}

如果键入/start,它将产生变量maf = 1,然后将变量值记录为1,并记录字符串'Game Started'。当我键入/in时,它将maf记录为undefined。为什么它不保持为1?我对为什么要重置变量感到非常困惑!一般来说,我对Discord编码和Java脚本也很陌生。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果此代码位于函数内部(并且可能在函数内部),则由于变量的范围,当函数退出时,该函数中定义的变量将被丢弃。

要永久存储值,请在该函数之外定义它:

var a; //Declare variable outside
function someFunction(){
  if (message.channel.id === "624637964827492352") {
    if (message.content === '/start'){
      maf = 1
      console.log('Game Started')
      console.log(maf)
    }
    if (message.content === '/in'){
      console.log(maf)
    }
  }
}