页面刷新JAVASCRIPT时全局变量未定义

页面刷新JAVASCRIPT时全局变量未定义,javascript,undefined,page-refresh,Javascript,Undefined,Page Refresh,刷新页面时,计数器的全局变量未定义。每次你导航到另一个页面时,它都会碰到计数器,并且工作正常。。。但一旦点击“刷新”,它就会显示“无法读取未定义的属性0” 我的代码: var answer = function(currAnswer){ if(answer[index].getAnswer !== currAnswer){ return false; } else { return true; } } 它工作正常,直到您刷新页面,然后它

刷新页面时,计数器的全局变量未定义。每次你导航到另一个页面时,它都会碰到计数器,并且工作正常。。。但一旦点击“刷新”,它就会显示“无法读取未定义的属性0”

我的代码:

var answer = function(currAnswer){
    if(answer[index].getAnswer !== currAnswer){
        return false;
   }
   else {
       return true;
    }
}
它工作正常,直到您刷新页面,然后它抱怨0未定义?索引是全局变量,在页面之间导航时,它会被放大


这不是最佳实践,但我仍然对正在发生的事情感到困惑。

Javascript是一个客户端库。一个新的页面加载(又名刷新)会重新开始一切。如果要跨页面加载持久化某些内容,可以使用:

  • 为特定用户跟踪此信息的服务器/数据库
  • 饼干
  • 本地或会话存储
  • URL上的查询字符串
  • 有关此主题的更多阅读,请参阅本文:

    您考虑过使用吗


    answer
    被定义为一个函数,然后你试图像一个数组(或关联数组)一样读取它-完全不清楚你想在这里做什么。刷新页面清除所有变量是正常的,这是它应该做的work@Saar奇怪的是,当我console.log('index:',index)时;即使在我刷新之后,它也给了我正确的索引…您问题中的代码似乎没有反映您所说的内容。请包括您在哪里使用
    console.log
    以及您在哪里设置/使用“counter”,我正在将它设置到我的会话中,但我认为其他地方正在破坏它。非常感谢。
    if (sessionStorage.clickcount) {
        sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
    } else {
        sessionStorage.clickcount = 1;
    }