不需要的数据类型切换

Javascript Unwanted Data Type Switching

本文关键字:数据类型 不需要      更新时间:2023-09-26

我在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;
    }
}

存放在localStorage中的数据总是字符串。

如果你想要得到一个数字你必须解析它

这样的

c = parseInt(localStorage.clocal);

这就是JS的本质。您可以使用parseInt(c, 10) + x或x + 1 * c来解决这个问题。

要遵循这些方法的流程有点困难,但我看到一个明显的问题是这一行:

c += x

在这种情况下,你说你想让c等于c + x的结果,其中x是一个字符串,而不是让x等于x + c?通过执行此赋值,您将c转换为字符串。在此之后,无论你做什么——它仍然是一个字符串,除非你将它显式地重新赋值为整数。

我希望我正确地理解了你的意图。