我正在尝试使用.removeItem(键)删除localStorage,但是它表示未定义localStorage键。我正在尝试再次创建一个简单的localStorage,如下所示,然后再次尝试removeItem,仍然是同样的问题。怎么了?
<html>
<head>
<script>
localStorage.test = "good";
console.log(localStorage.test);
localStorage.removeItem(test);
</script>
</head>
浏览器说,“Uncaught ReferenceError:test not defined”。我正在尝试使用window.localStorage.clear(),这是有效的,但我想指定我想删除哪个localStorage。
答案 0 :(得分:5)
您遇到错误的原因是,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
。