如何正确设置localStorage变量
在 localStorage 中设置变量的正确方法是什么?
localStorage.hello = 'world'
或者
localStorage.setItem('hello','world')
回答
使用的方法不太可能重要。标准列出了以下方法是等效的:
storage.setItem (key, value) storage[key] = value将键标识的对的值设置为值,如果之前不存在键,则创建一个新的键/值对。
在非常不寻常的情况下,setItemandgetItem比点符号分配或检索更可取的是原型上的属性可能会被引用 - 例如 with.length和.__proto__。(但动态存储键是一个非常糟糕的主意 - 最好将它们组织成自己的数组或单个存储键中的对象。如果键不是动态的,那么这种冲突不应该在理智的代码中发生,除非有人忘记了这一点length被预定了)
有关lengthwith 点表示法的有问题使用的示例:
localStorage.length = '123'
console.log(localStorage.length)
不会给你123,而是存储中的密钥数量。(分配默默地失败了。)另一方面,使用setItem和getItem与length(或任何其他任意字符串)将起作用。
getItem并且setItem比点表示法更兼容 TypeScript 和 Flow 等类型检查系统。
就我个人而言,当我不使用 TypeScript 并且存储键是静态的时,我使用点表示法,因为它更简洁并且不会引起任何问题。