我在c
下设置了一个数字变量。在通过本地存储和几个函数运行它之后,变量变成了一个字符串。代替x
添加到c
,x
会向c添加一个数字。有谁能看到这个问题?
function hi() {
c += x;
document.getElementById("paragraph").textContent = "This is a string" + c;
localStorage.clocal = c;
}
function resetvar() {
c = localStorage.clocal;
}
function bla() {
if (localStorage.getItem("clocal") === "null") {
document.getElementById("parargraph").textContent = "This Works Okay";
} else {
document.getElementById("parargraph").textContent = "This is a string" + localStorage.credits;
}
}
答案 0 :(得分:0)
将localStorage中的数据始终作为字符串。
如果您想获得必须解析的数字
像这样c = parseInt(localStorage.clocal);
答案 1 :(得分:0)
这就是JS的本质。您可以使用parseInt(c,10)+ x或x + 1 * c来完成此操作。
答案 2 :(得分:0)
遵循这些方法的流程有点困难,但我看到的一个明显的问题是这一行:
c += x
在这种情况下,你说你想设置c等于c + x的结果,其中x是一个字符串,而不是设置x等于x + c?通过进行此分配,您将c转换为字符串。那么在那之后你做了什么并不重要 - 它仍然是一个字符串,除非你明确地将它重新分配为一个整数。
我希望我能正确理解你的意图..这有点不清楚。