javascript - 为什么 localStorage 返回大小写为 null 且未定义的字符串值

标签 javascript local-storage

当我保存null/undefined时值进入localStorage 。我使用 localStorage.getItem 时收到的结果将是一个字符串 ( "null" or "undefined" )

localStorage.setItem("item1", null)
localStorage.setItem("item2", undefined)

const item1 = localStorage.getItem("item1")
const item2 = localStorage.getItem("item2")

console.log(item1) // The result will be "null" not null
console.log(item2) // The result will be "undefined" not undefined

谁能帮我解释一下这个案例!

最佳答案

Js 将其字符串化到本地存储

storage.setItem(keyName, keyValue)

keyName and KeyValue both are of type DOMString

DOMString is a UTF-16 string. As JavaScript already uses such strings, DOMString is mapped directly to a String.

Passing null to a method or parameter accepting a DOMString typically stringifies to "null"

我看到我们同时有 2 个答案,所以只需添加他的部分 mdn docsDOMString

关于javascript - 为什么 localStorage 返回大小写为 null 且未定义的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58690917/

相关文章:

javascript - 是否可以像在 Javascript 对象中那样在 localStorage 中存储整数值并在不进行类型转换的情况下提取它?

javascript - 本地存储 - 保存多个选项卡中的数据

javascript - 如果单击另一个元素,则使 jQuery 元素向上滑动

javascript - localStorage访问是一个繁重的操作吗

javascript - 数组中最小的数及其位置

javascript - 用其他子域替换子域名使用 JavaScript?

javascript - 如果使用 "checked",localStorage 不会保存更改的单选按钮值

javascript - 如何从本地存储中的数组中删除对象?

javascript - .attr 选择器在each 循环中不起作用?

javascript - 如何将 Sinon.JS spy 函数指定为类定义的一部分?