我正在尝试在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上测试了这个。发生了什么事?
答案 0 :(得分:3)
localStorage
只能存储字符串。这意味着当您致电.setItem()
时:
localStorage.setItem('names', null);
null
转换为字符串"null"
。因此它与:
localStorage.setItem('names', "null");
这意味着您要在字符串上循环,而不是在null
上。