我将数据作为JSON对象存储在localStorage
中,因为有时它可以是一个数组,而我只能在其中存储值。
我有一个键,其中的值可以是数组或null。 JSON.stringify()
进行设置,JSON.parse()
进行完善。
但是我有一个键,其中值可以是字符串或null。它导致问题。如果我不对其进行字符串化和解析,它将null
存储为"null"
,这是一个真实值。
如果我这样做,则当值最初是字符串时,它将引发错误。如我所见,如果我尝试对字符串进行字符串化,则什么也没有发生,这就是原因。
我当然可以使用==
(等值)作为比较,而不用字符串化和解析来解决问题,但是我正在寻找更优雅的东西。
有什么想法吗?
答案 0 :(得分:0)
如果您始终使用JSON.parse
来读取存储在localStorage中的值,那么您将能够检索一个null
值而不是一个"null"
字符串。
这里是一个例子:
function set(value) {
window.localStorage.test = JSON.stringify(value);
}
function get() {
return JSON.parse(window.localStorage.test);
}
set(null);
console.log(get()); //Output: null (null value)
set("null");
console.log(get()); //Output: "null" (the string)