【问题标题】:What is the return type of localStorage?localStorage 的返回类型是什么?
【发布时间】:2016-07-02 06:58:52
【问题描述】:

我正在设置一个字节数组格式的 localStorage 值,但是当我尝试获取它时,它被检索为字符串?

为什么会这样?

如果是这样,我们如何转换它?

感谢您的帮助!

【问题讨论】:

  • 为什么是负面的?不回复请注明原因
  • 转换后你想要什么?
  • window.localStorage 是一个对象。所有项目值都存储为字符串。所以你的问题真的是“如何将字符串转换为数组?”。
  • 基本上,我是使用一些加密算法加密然后存储。但是当我尝试检索它时,它是字符串。加密值是字节数组格式。
  • 我不知道为什么对这个 qstn 持否定态度.. 但这已经停止发布 qstns 了!

标签: javascript string local-storage bytearray


【解决方案1】:

这就是它的存储方式:String

你可以使用JSON.parse(yourStoredValue)

【讨论】:

  • 谢谢..让我检查一下:)
  • 使用localStorage.array 提取的存储数组localStorage.setItem('array', [1,2,3,4,5,6]) 显示为"1,2,3,4,5,6",这是无效的JSON。
  • 如果你有 var a = JSON.parse("[1,2,3]"),a 将是一个数组
【解决方案2】:

如果你想存储 JSON 对象 - 保存它

localStorage.setItem(JSON.stringify({'a': [1, 2, 3]}));

你可以像这样检索它

JSON.parse(localStorage.getItem("field_name"));

如果您想存储纯 JavaScript 代码并稍后执行,只需将其存储为 String 并像检索一样检索它

eval(localStorage.getItem("field_name"));

希望这会有所帮助。

【讨论】:

  • 在这种情况下不使用 eval 会引发安全问题吗?如果你的 localstorage 被恶意代码替换了怎么办?
  • 我同意你的观点,因为 localStorage 间接地是用户的输入,所以使用 eval 是有害的。我只是用它来更好地理解:) 因为他的问题是“localStorage 返回的类型”
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 2011-09-18
  • 2017-08-15
相关资源
最近更新 更多