Javascript 整数被计算为数字,但输出为非数字(NaN)?

Javascript 整数被计算为数字,但输出为非数字(NaN)?,javascript,Javascript,我有一个计数,每次我加一个音符,它就递增一。当单据准备就绪时,通过创建与计数一样多的div来显示注释 但是,我必须像这样解析此计数: var noteCount = parseInt(localStorage.getItem("noteCount")); 或者这一行: for (var i = 1; i < noteCount + 1; i++) { for(变量i=1;i

我有一个计数,每次我加一个音符,它就递增一。当单据准备就绪时,通过创建与计数一样多的div来显示注释

但是,我必须像这样解析此计数:

var noteCount = parseInt(localStorage.getItem("noteCount"));
或者这一行:

for (var i = 1; i < noteCount + 1; i++) {
for(变量i=1;i
结果会创建21个div(如果notecont为2),而不是所需的3个div

这是一个问题,因为我试图将计数用于其他内容,但当我在控制台中输出它时,它显示为“NaN”

有办法解决这个问题吗

编辑:如果我不分析计数,它将正确存储为0、1、2等。

像这样尝试

与1相乘将确保它被视为整数

for (var i = 1; i < (noteCount * 1) + 1; i++) {

}
for(变量i=1;i<(noteCount*1)+1;i++){
}

将您的行更改为:

for (var i = 1; i < +localStorage.noteCount + 1; i++) {
for(变量i=1;i<+localStorage.notecont+1;i++){

这只会得到一个数字。您不再需要在第一行使用parseInt(除非您将其用于其他用途)

localStorage
仅存储字符串。如果您想从中获得一个数字,请使用
+localStorage.noteCount
-还要注意
parseInt
的第二个参数(基数,通常为
10
)不是可选的。您必须向我们展示它是如何变成
NaN
,正如上面的注释中所述,您将始终从localStorage获取字符串,一切都与预期的一样。localStorage.setItem(“noteCount”,noteCount);一元+运算符将其操作数强制为数字。这相当于写入
number(localStorage.getItem('noteCount'))