Javascript localStorage命令停止程序

Javascript localStorage命令停止程序,javascript,Javascript,每当我使用“保存”按钮和“加载”按钮时(它们工作),但停止游戏。单击“加载”后,游戏冻结,按钮和动画工作,但游戏冻结,我无法获得xp或金牌 我的代码: function save(){ localStorage["gold"] = gold; localStorage["goldmax"] = goldmax; localStorage["food"] = food; localStorage["foodmax"] = foodmax; localStorage["wood"

每当我使用“保存”按钮和“加载”按钮时(它们工作),但停止游戏。单击“加载”后,游戏冻结,按钮和动画工作,但游戏冻结,我无法获得xp或金牌

我的代码:

function save(){
  localStorage["gold"] = gold;
  localStorage["goldmax"] = goldmax;
  localStorage["food"] = food;
  localStorage["foodmax"] = foodmax;
  localStorage["wood"] = wood;
  localStorage["woodmax"] = woodmax;
  localStorage["stone"] = stone;
  localStorage["stonemax"] = stonemax;
  localStorage["iron"] = iron;
  localStorage["ironmax"] = ironmax;
  localStorage["level"] = level;
  localStorage["xp"] = xp;
  localStorage["xpN"] = xpN;
  localStorage["xpgained"] = xpgained;
  localStorage["questpoint"] = questpoint;
  localStorage["questpointspeed"] = questpointspeed;
  localStorage["buildQueue"] = buildQueue;
  localStorage["buildSpeed"] = buildSpeed;
  localStorage["heroxp"] = heroxp;
  localStorage["herolevel"] = herolevel;
  localStorage["skillpoint"] = skillpoint;
  spop("Game has been successfully saved!")
}
function load(){
  if (localStorage.getItem("gold") === null){
    spop('<strong>Save file has been corrupted!</strong>', 'error');
  }
  if (localStorage.getItem("gold") !== null){
    gold =            localStorage["gold"];
    goldmax =         localStorage["goldmax"];
    food =            localStorage["food"];
    foodmax =         localStorage["foodmax"];
    wood =            localStorage["wood"];
    woodmax =         localStorage["woodmax"];
    stone =           localStorage["stone"];
    stonemax =        localStorage["stonemax"];
    iron =            localStorage["iron"];
    ironmax =         localStorage["ironmax"];
    level =           localStorage["level"];
    xp =              localStorage["xp"];
    xpN =             localStorage["xpN"];
    xpgained =        localStorage["xpgained"];
    questpoint =      localStorage["questpoint"];
    questpointspeed = localStorage["questpointspeed"];
    buildQueue =      localStorage["buildQueue"];
    buildSpeed =      localStorage["buildSpeed"];
    heroxp =          localStorage["heroxp"];
    herolevel =       localStorage["herolevel"];
    skillpoint =      localStorage["skillpoint"];
    spop("Game has been successfully loaded!")
  }
}
函数保存(){
本地存储[“黄金”]=黄金;
本地存储[“goldmax”]=goldmax;
本地储存[“食品”]=食品;
本地存储[“foodmax”]=foodmax;
本地存储[“木材”]=木材;
本地存储[“woodmax”]=woodmax;
本地存储[“石头”]=石头;
本地存储[“stonemax”]=stonemax;
本地存储[“铁”]=铁;
本地存储[“ironmax”]=ironmax;
本地存储[“级别”]=级别;
本地存储[“xp”]=xp;
本地存储[“xpN”]=xpN;
localStorage[“xpgovered”]=xpgovered;
localStorage[“questpoint”]=questpoint;
本地存储[“questpointspeed”]=questpointspeed;
localStorage[“buildQueue”]=buildQueue;
本地存储[“buildSpeed”]=buildSpeed;
本地存储[“heroxp”]=heroxp;
localStorage[“herolevel”]=herolevel;
本地存储[“skillpoint”]=skillpoint;
spop(“游戏已成功保存!”)
}
函数加载(){
if(localStorage.getItem(“黄金”)==null){
spop(“保存文件已损坏!”,“错误”);
}
if(localStorage.getItem(“黄金”)!==null){
黄金=本地存储[“黄金”];
goldmax=localStorage[“goldmax”];
食品=本地存储[“食品”];
foodmax=localStorage[“foodmax”];
木材=本地存储[“木材”];
woodmax=localStorage[“woodmax”];
斯通=本地存储[“斯通”];
stonemax=localStorage[“stonemax”];
铁=本地存储[“铁”];
ironmax=本地存储[“ironmax”];
级别=本地存储[“级别”];
xp=本地存储[“xp”];
xpN=localStorage[“xpN”];
xpgoen=localStorage[“xpgoen”];
questpoint=localStorage[“questpoint”];
questpointspeed=localStorage[“questpointspeed”];
buildQueue=localStorage[“buildQueue”];
buildSpeed=localStorage[“buildSpeed”];
heroxp=localStorage[“heroxp”];
herolevel=localStorage[“herolevel”];
skillpoint=localStorage[“skillpoint”];
spop(“游戏已成功加载!”)
}
}

localStorage以字符串形式保存所有数据

因此,您必须将其转换为数字:

parseInt(localStorage["gold"]);

localStorage以字符串形式保存所有数据

因此,您必须将其转换为数字:

parseInt(localStorage["gold"]);

开发控制台中是否有任何错误?提出,gold.toFixed(2)不是一个函数。是因为localStorage将其存储为字符串吗?还是什么?是的,localStorage以字符串形式存储所有数据。你能给我们看一下导致错误的部分代码吗?当你的游戏加载第一次调用的函数时?无论是
load()
函数还是任何其他函数,加载函数仅在gold保存数据时运行。这意味着您必须先保存才能加载它。这是我的goldbit代码:开发控制台中有错误吗?我发现gold.toFixed(2)不是一个函数。是因为localStorage将其存储为字符串吗?还是什么?是的,localStorage以字符串形式存储所有数据。你能给我们看一下导致错误的部分代码吗?当你的游戏加载第一次调用的函数时?无论是
load()
函数还是任何其他函数,加载函数仅在gold保存数据时运行。这意味着您必须先保存才能加载它。这是我的黄金比特代码:你的提琴不工作:)请在你的提琴头包装javascript:)然后你的提琴会工作。请,现在试试。仍然不工作!用这把小提琴代替:)谢谢你们的帮助,一切都很好,我很高兴我终于建立了一个有效的保存系统。再次感谢!:我不知道为什么,但它似乎不适用于小数位,我想保存变量,0.01,但它没有保存。我做了语法分析,它一直保存数字0;你的提琴不工作:)请将javascript包在你的提琴头:)然后你的提琴就可以工作了。请现在试试。仍然不工作!用这把小提琴代替:)谢谢你们的帮助,一切都很好,我很高兴我终于建立了一个有效的保存系统。再次感谢!:我不知道为什么,但它似乎不适用于小数位,我想保存变量,0.01,但它没有保存。我做了语法分析,它一直保存数字0;