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存储字符串!