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

时间:2016-04-11 19:51:53

标签: javascript

我正在尝试在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#

当然这不应该发生。我在Firefox上测试了这个。发生了什么事?

1 个答案:

答案 0 :(得分:3)

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

localStorage.setItem('names', null);

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

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

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