Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向本地存储添加高分_Javascript_Html_Local Storage - Fatal编程技术网

Javascript 向本地存储添加高分

Javascript 向本地存储添加高分,javascript,html,local-storage,Javascript,Html,Local Storage,我想给我的比赛增加一个高分。现在我有这个: var score = 0; var highscore = 0; score变量起作用,但每当我得到喜欢的分数(总共60分)时,当使用console.log(highscore)进行检查时,它会显示高分仍然为零 我用这个来存储高分: if (score > localStorage.getItem("highscore")) { localStorage.setItem("highscore", score); } 这不能正常工作,但也

我想给我的比赛增加一个高分。现在我有这个:

var score = 0;
var highscore = 0;
score变量起作用,但每当我得到喜欢的分数(总共60分)时,当使用
console.log(highscore)
进行检查时,它会显示高分仍然为零

我用这个来存储高分:

if (score > localStorage.getItem("highscore")) {
  localStorage.setItem("highscore", score);
}
这不能正常工作,但也不会产生任何错误

if (score > parseInt(localStorage.getItem('highscore'), 10)) {
  localStorage.setItem('highscore', score);
}

在比较之前将其转换为int。它的字符串

您需要使用

highscore = +localStorage.getItem("highscore")

或者一些等价的代码。
localStorage
中的项不跟踪具有相同名称的全局变量。

除了
parseInt
之外,您需要首先在
localStorage
上设置init值,因为
localStorage.getItem(“highscore”,10)
如果未设置,则不会返回10作为默认值

var score = 0;
var highscore = 0;
localStorage.setItem("highscore",0);
因为当你检查的时候

if (score > parseInt(localStorage.getItem("highscore"))) {
  localStorage.setItem("highscore", score);
}
如果尚未设置项,
localStorage.getItem(“highscore”)
将返回null。或者,您也可以执行以下操作:

var storagedHighScore = localStorage.getItem("highscore");
if (storagedHighScore  || score > parseInt(storagedHighScore)) {
  localStorage.setItem("highscore", score);
}

我刚刚在中查看了您的代码,但我找不到您在哪些部分增加了分数,因此当这部分代码的运行分数为0时 getItem(“highscore”)是10,因此它不设置highscore

if (score > localStorage.getItem("highscore")) {
                localStorage.setItem("highscore", score);

            }

  }
是否还有其他js文件可以增加分数?

试试以下方法:

var score = 0;
var highscore = localStorage.getItem("highscore");

if(highscore !== null){
    if (score > highscore) {
        localStorage.setItem("highscore", score);      
    }
}
else{
    localStorage.setItem("highscore", score);
}

仍然无法正常工作,你可以在这里查看我的洞代码,你可以共享JSFIDLE或plnkr链接。我无法访问pastebinit a hole游戏这是一个脚本,但是的,我可以将它放入JSFIDLE中。这不重要,因为如果
score
是一个数字,它应该强制为一个数字。@Qantas94Heavy:-我的错。你是对的。它会自动转换。只要想想你的pastebin,你可能想把变量转换成对象,这会有很大帮助:)不,localStorage存储字符串!