Javascript不需要的数据类型切换

时间:2015-10-17 06:00:02

标签: javascript variables

我在c下设置了一个数字变量。在通过本地存储和几个函数运行它之后,变量变成了一个字符串。代替x添加到cx会向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;
    }
}

3 个答案:

答案 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转换为字符串。那么在那之后你做了什么并不重要 - 它仍然是一个字符串,除非你明确地将它重新分配为一个整数。

我希望我能正确理解你的意图..这有点不清楚。