javascript - LocalStorage 未传递数字 9

标签 javascript local-storage

我的 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/

相关文章:

javascript - Internet Explorer 无法正确显示下拉菜单

authentication - 身份验证 token 、本地存储和 meteor

jquery - 如何检测 localStorage 存储事件是否来自 IE 中的同一页面?

javascript - 针对页面刷新的angularjs localstorage

javascript - 如何在成功函数中为多个语句扩展单个语句

javascript - Highcharts - 拖动以在 xAxis 上移动

javascript - Angular.js 与 PHP MVC (Codeigniter) 的混淆

javascript - 当子数组具有特定值时删除数组元素

javascript - localStorage 的 'storage' 事件中的未定义属性

html - localStorage 中是否有不允许使用的字符?