首页 > 解决方案 > 即使在重新加载或关闭选项卡时,如何保存 JavaScript 变量?

问题描述

我已经看过并尝试过

var someVarName = "value";
localStorage.setItem("someVarKey", someVarName);
var someVarName = localStorage.getItem("someVarKey");

但我不明白如何计算。所以假设我有一个变量,分数,我希望每次函数 frame() 运行时都将它提高到 1.1 的幂。

var score = 2;

function frame() {
  score = Math.pow(score, 1.1);
  Console.log(score.toFixed(2));
}
setInterval(frame, 25);

我将如何设置它,以便即使您重新加载页面,它也会保持以前的状态?即使我尝试设置本地存储,我也无法在重新加载时访问它。

标签: javascriptvariableslocal-storage

解决方案


尝试首先确定您的分数是否已被存储。现在看来,每次加载页面时,您都会一直覆盖'score'存储中的项目。2

因此,从存储中检索'score'项目并检查值是否为null. 这意味着没有存储价值,应该创造价值。

在您的frame函数中,每次计算后更新存储中的分数项。这样,存储值始终会更新为最新计算,并在您重新加载页面时继续保持所述值。

function saveScore(score) {
  localStorage.setItem('score', score);
}

let score = localStorage.getItem('score');
if (score === null) {
  score = 2;
  saveScore(score);
}

function frame() {
  score = Math.pow(score, 1.1);
  saveScore(score);
  console.log(score.toFixed(2));
}

setInterval(frame, 25);

推荐阅读