我的 localStorage
遇到问题,我的 localStorage
未传递数字 9。我该如何解决此问题?
我尝试了很多方法,但没有任何效果。
我正在这样做:
if (typeof(Storage) !== "undefined") {
if (sessionStorage.pontos) {
sessionStorage.pontos = Number(sessionStorage.pontos) + 1;
} else {
sessionStorage.pontos = 1;
}
document.getElementById('pontos').innerHTML = "PONTOS: " + sessionStorage.pontos;
} else {
document.getElementById('pontos').innerHTML = "ERROR";
}
if (typeof(Storage) !== "undefined") {
if (sessionStorage.pontos > localStorage.Recpontos) {
localStorage.Recpontos = Number(localStorage.Recpontos) + 1;
}
}
单击按钮时会发生此操作。 我进入浏览器控制台,什么也没有,在控制台中显示:
> localStorage.Recpontos
"9"
> sessionStorage.pontos
"10"
这种情况不会发生,因为当 sessionStorage.pontos
大于 localStorage.Recpontos
时,两者的值相同。而9
只有一处,而10
有两处,我认为这就是问题所在。
我预计当 sessionStorage.point
大于 localStorage.Recpontos
时,它会加 1。
最佳答案
您需要将值作为数字而不是字符串进行比较。
if (Number(sessionStorage.pontos) > Number(localStorage.Recpontos)) {
localStorage.Recpontos = Number(localStorage.Recpontos) + 1;
}
如果将它们作为字符串进行比较,它将执行字典顺序比较,并且 "10" < "9"
因为"1" < "9"
.
关于javascript - LocalStorage 未传递数字 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175994/