如何正确设置localStorage变量



在localStorage中设置变量的正确方法是什么?

localStorage.hello = 'world'

localStorage.setItem('hello','world')

使用的方法不太可能重要。该标准列出了以下方法是等效的:

storage.setItem (key, value)
storage[key] = value

将键对的值设置为value,如果先前没有key,则创建一个新的键/值对。

在非常不寻常的情况下,setItemgetItem会优先于点符号赋值或检索,这是当原型上的属性可能被引用时-例如.length.__proto__。(但是动态存储键是一个非常糟糕的主意——最好将它们组织到单个存储键中自己的数组或对象中。如果键不是动态的,这样的冲突不应该在相同的代码中发生,除非有人忘记了length是保留的)

一个使用length和点表示法的错误示例:

localStorage.length = '123'
console.log(localStorage.length)

不会给出123,而是存储中的键数。(赋值会无声地失败。)另一方面,将setItemgetItemlength(或任何其他任意字符串)一起使用也可以。

getItemsetItem与类型检查系统(如TypeScript和Flow)的兼容性也比点符号更强。

就我个人而言,当我不使用TypeScript,并且当存储键是静态的时候,我使用点符号,因为它更简洁,不会引起任何问题。

最新更新