1

我正在尝试使用基本数学将数字添加为字符串。我首先将本地存储设置为“0”,然后每次都添加“1”。我觉得我走在正确的道路上,但是当我运行它时,我的结果不是 0 + 1 = 1,而是在我的本地存储中得到“01”。我希望每次都能够将 1 添加到现有的本地存储中,所以 0 + 1 我得到 1。下一次大约 1 + 1 我得到 2,2 + 1 我得到 3,依此类推。

// sets "points" to 0 when user first loads page.
if (localStorage.getItem("points") === null){
localStorage.setItem("points", "0");
}

// get points
var totalPoints = localStorage.getItem("points");
// add 1 points to exisiting total
var addPoint = totalPoints +"1";
// set new total
localStorage.setItem("points", addPoint);
4

1 回答 1

1

您可以通过多种方式将字符串转换为数字(不是详尽的列表):

var n = s * 1; // s is the string
var n = s - 0;
var n = parseFloat(s);
var n = Number(s);
var n = ~~s; // force to 32-bit integer
var n = parseInt(s, 10); // also integer, precise up to 53 bits

当您从本地存储中获取字符串时,将它们转换为数字,进行数学运算,然后将结果放回去。

编辑——要记住的是它+比其他算术运算符更“有趣”,因为它对字符串值操作数有意义。事实上,JavaScript 倾向于对运算符进行字符串解释+,因此如果一侧是字符串,另一侧是数字,则该操作是字符串连接而不是算术加法。

于 2012-06-03T14:43:28.307 回答