Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能在本地存储中将“1”作为键名?_Javascript - Fatal编程技术网

Javascript 为什么我不能在本地存储中将“1”作为键名?

Javascript 为什么我不能在本地存储中将“1”作为键名?,javascript,Javascript,我想把密钥名设为1,但它不起作用 我想用键1在本地存储器中传递这样的字符串 1:["name":"kalidas"] 我经常得到的输出是存储 {1: "1", length: 1} 但是,如果我更改了键名,它会工作得很好。您可以编写一个简单的包装器,它总是将内容往返到JSON: function saveValue(key, value) { localStorage.setItem(key, JSON.stringify(value)); } function loadValue(k

我想把密钥名设为1,但它不起作用

我想用键1在本地存储器中传递这样的字符串

1:["name":"kalidas"]
我经常得到的输出是存储

{1: "1", length: 1}

但是,如果我更改了键名,它会工作得很好。

您可以编写一个简单的包装器,它总是将内容往返到JSON:

function saveValue(key, value) {
  localStorage.setItem(key, JSON.stringify(value));
}

function loadValue(key, defaultValue=null) {
  const value = localStorage.getItem(key);
  if(value === null) return defaultValue;
  return JSON.parse(value);
}

const a = {name: 'kalidas'};
saveLocalStorage('1', a);
const b = loadLocalStorage('1');
localStorage.setItem“1”、“此处的某些字符串”按预期工作

是的,您的代码的响应是

[{…}]
   0: {name: "kalidas"}
   length: 1
如果您像console.loglocalStorage这样查看存储,您将得到

Storage {1: "1", length: 1}
   1: "1"
   length: 1
没错

但是,如果您尝试通过键(即localStorage.getItem'1)获取存储的数据,您将得到有效的响应

"[{"name":"kalidas"}]"

1:[name:kalidas]语法无效,还测试了localStorage,其中1为密钥,没有问题,不确定您在做什么他可能是指[name,kalidas]我如何将我的密钥值设置为1,并在其中设置一个数组我想他指的是[{name:kalidas}]从代码中,您得到了该响应,因为您正在尝试将localStorage对象记录到console.loglocalStorage,如果您尝试改为执行localStorage.getItem1,您应该会看到响应[{name:kalidas}]。。这将是唯一的解释为什么这有帮助?原版有什么问题?这是一个关于如何封装最重要的保存/加载/水合/脱水的示例。
"[{"name":"kalidas"}]"