我正在尝试删除一个带有.removeItem(密钥)的localStorage,但是据说没有定义localStorage密钥。我正在尝试再次像下面这样创建一个简单的localStorage,然后再次尝试removeItem,仍然存在相同的问题。怎么了?
<html>
<head>
<script>
localStorage.test = "good";
console.log(localStorage.test);
localStorage.removeItem(test);
</script>
</head>
浏览器显示,“未捕获ReferenceError:未定义测试”。我正在尝试使用window.localStorage.clear(),这是工作,但我想指定我想要删除的localStorage。
发布于 2017-07-11 22:20:57
遇到错误的原因是,test
在代码范围内不可用(当您尝试访问尚未定义的变量时,会抛出引用错误)。在本例中,它驻留在localStorage.test
上,因为您直接将其附加到localStorage
对象。
如果您使用的是localStorage.removeItem(localStorage.test);
,就不会遇到这个错误。
而且,直接在localStorage
对象上设置属性也不是一个好主意。相反,使用setItem
将数据存储在本地存储中。
var value = "good";
localStorage.setItem('test', value); // set the item
console.log(localStorage.getItem('test')); // retrieve the item
localStorage.removeItem('test'); // delete the item
在setItem
、getItem
和removeItem
中,第一个参数是要存储、检索或从存储中删除的key
。在本例中,密钥的名称为test
。
https://stackoverflow.com/questions/45045341
复制相似问题