Javascript &引用;“未定义”;在LocalStorage中的实际值之前
这是我使用的代码:Javascript &引用;“未定义”;在LocalStorage中的实际值之前,javascript,local-storage,undefined,Javascript,Local Storage,Undefined,这是我使用的代码: localStorage["FSS"] += JSON.stringify(favSongs); localStorage["FSTS"] += JSON.stringify(favSongTitle); localStorage["FIS"] += JSON.stringify(favImages); 但当我检索这些值时,我得到了以下结果: 对于FSS:未定义[“0t0FGyhB6C8”] 对于FSTS:未定义[“SONIC辛迪加-拒绝(官方音乐视频)] 对于FIS:未定
localStorage["FSS"] += JSON.stringify(favSongs);
localStorage["FSTS"] += JSON.stringify(favSongTitle);
localStorage["FIS"] += JSON.stringify(favImages);
但当我检索这些值时,我得到了以下结果:
对于FSS
:未定义[“0t0FGyhB6C8”]
对于FSTS
:未定义[“SONIC辛迪加-拒绝(官方音乐视频)]
对于FIS
:未定义[“https://i.ytimg.com/vi/0t0FGyhB6C8/mqdefault.jpg“]
我不明白
undefined
的来源和位置,以及我如何将其删除以在屏幕上记录结果(现在当我记录时,它也会显示undefined
)未定义的undefined
是localStorage
中已经存在的内容:
document.getElementById('existing').textContent = localStorage[Math.random().toString()];
由于使用foo+=bar
语法,脚本将:
foo的现有值
foo
和bar
兼容条
附加到现有值foo
foo
已包含未定义的
这似乎是通过映射访问器访问localStorage
属性的产物。如果使用,您将收到null
,而不是undefined
因为您使用的是JSON,所以即使您已经有了一个值,简单的字符串连接(string+=
)也无法工作。您将得到无效的['foo-album']['bar-album']
。我建议获取现有项或空数组,附加新项,然后替换存储值:
var prev = localStorage.getItem('FSS') || '[]'; // get the existing value or the string representing an empty array
var data = JSON.parse(prev); // parse into an object
data.push('New Album');
localStorage.setItem('FSS', JSON.stringify(data)); // convert back to JSON and set
未定义的是localStorage
中已经存在的内容:
document.getElementById('existing').textContent = localStorage[Math.random().toString()];
由于使用foo+=bar
语法,脚本将:
获取foo的现有值
执行类型强制以使foo
和bar
兼容
将条
附加到现有值
将组合值分配回foo
如果foo
已包含未定义的
这似乎是通过映射访问器访问localStorage
属性的产物。如果使用,您将收到null
,而不是undefined
因为您使用的是JSON,所以即使您已经有了一个值,简单的字符串连接(string+=
)也无法工作。您将得到无效的['foo-album']['bar-album']
。我建议获取现有项或空数组,附加新项,然后替换存储值:
var prev = localStorage.getItem('FSS') || '[]'; // get the existing value or the string representing an empty array
var data = JSON.parse(prev); // parse into an object
data.push('New Album');
localStorage.setItem('FSS', JSON.stringify(data)); // convert back to JSON and set
谢谢你的评论。但当我尝试时,它只得到第一个,然后再也不会添加一个。我需要/想要将10项添加到一个列表/数组中,以便稍后检索。我该怎么做?谢谢你的评论。但当我尝试时,它只得到第一个,然后再也不会添加一个。我需要/想要将10项添加到一个列表/数组中,以便稍后检索。我该怎么做?