在 localStorage 中设置变量的正确方法是什么?localStorage.hello = 'world'
或者localStorage.setItem('hello','world')
最佳答案
使用的方法不太重要。 The standard列出以下方法是等效的:
storage.setItem (key, value) storage[key] = value
Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
非常不寻常的情况,其中
setItem
和 getItem
当原型(prototype)上的属性可能被引用时,将优于点符号分配或检索 - 例如使用 .length
和 .__proto__
. (但是动态存储键是一个非常糟糕的主意 - 最好将它们组织到自己的数组或对象中的单个存储键中。如果键不是动态的,那么这种冲突不应该发生在健全的代码中,除非有人忘记了这一点length
保留)有关
length
的有问题使用的示例带点符号:localStorage.length = '123'
console.log(localStorage.length)
不会给你123
,但存储中的键数。 (分配静默失败。)另一方面,使用 setItem
和 getItem
与 length
(或任何其他任意字符串)将起作用。getItem
和 setItem
与点表示法相比,它还与 TypeScript 和 Flow 等类型检查系统更兼容。就我个人而言,当我不使用 TypeScript 并且存储键是静态的时,我使用点表示法,因为它更简洁并且不会造成任何问题。
关于javascript - 如何正确设置 localStorage 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68765815/