为什么 for (null_object 中的 var i)进入循环体的次数超过零次

Why does for (var i in null_object) enter the loop body more than zero times?

本文关键字:零次 循环 null for object 中的 为什么 var      更新时间:2024-04-25

我正在尝试在localStorage中保存和加载{'foo':123}类型的JavaScript对象。我遇到了一个奇怪的行为。

localStorage .setItem ('names', null);
alert ("names is:" + localStorage .getItem ('names'));
for (var n in localStorage .getItem ('names'))
{
    alert ("#" + n + "#");
}

这将给出以下警报

names is:null
#0#
#1#
#2#
#3#

当然,这不应该发生。我已经在火狐上测试过了。这是怎么回事?

localStorage只能存储字符串。这意味着当您呼叫.setItem()时:

localStorage.setItem('names', null);

null将转换为字符串"null"。因此,它与:

localStorage.setItem('names', "null");

这意味着您正在循环字符串,而不是null