javascript 如何让 cookie 转换为数字而不是字符串

How to make a cookie convert to a number instead of a string in javascript

我正在创建一个 cookie Clicker 网站,每当有人单击“保存”按钮时,我希望将他们的分数保存在本地存储中。到目前为止,我的代码是:

let score = 0;

function addpoint() {
  score += 1;
}

 if (localStorage.getItem("score") !== null) {
    score = localStorage.getItem("score");
}
 function savegame() {
   localStorage.setItem("score", score);
   alert("Score has been saved successfully!")
 }
}

这种方法可行,但如果分数变量发生变化,代码会尝试将字符串加 1,因为分数已保存为字符串。例如,如果我得到 5 分并且我挽救了我的比赛,如果我得到另一分,我将得到 51 分。请尽快帮忙!我不确定您是否需要改用 cookie。谢谢!

您可以尝试 score = parseInt(score) + 1。这样当增加分数时,它总是被解析为一个整数。

MDN - ParseInt()

本地存储将值存储为字符串。在您的情况下,您可以将字符串转换为数字,如:

if (localStorage.getItem("score") !== null) {
    score = Number(localStorage.getItem("score"));
}