javascript - 将变量转换为 JavaScript 中“typeof”的输出
问题描述
我正在用 JavaScript 制作一个系统,我可以在其中设置和从本地存储中获取变量。我的问题是,当我将一个整数变量设置为本地存储并从本地存储中取回它时,它返回一个字符串而不是整数/数字。
我在 JavaScript 中尝试过 typeof,但我不知道如何将我的变量从本地存储(字符串)转换为变量(整数)。
function setVar(name, value) {
// Set variable type
var json = localStorage.getItem("types");
if(json == null) {
json = {};
}else{
json = JSON.parse(json);
}
json[name] = typeof value;
localStorage.setItem("types", JSON.stringify(json));
// Set the variable
localStorage.setItem(name, value);
}
function getVar(name, defaultValue = 0) {
var v = localStorage.getItem(name);
// Set default value if value is not already set
if(v == null) {
setVar(name, defaultValue);
v = defaultValue;
}
// Cast to value type
var type = JSON.parse(localStorage.getItem("types"))[name];
// TODO: Cast v (string from localStorage) to type (output from typeof)
return v;
}
一切正常我只需要弄清楚如何将我的变量转换为所需的类型。我可能会以错误的方式处理这个问题,但任何事情都有帮助。
解决方案
这是感谢@Bergi的解决方案
function setVar(name, value) {
// Set the variable
localStorage.setItem(name, JSON.stringify(value));
}
function getVar(name, defaultValue = 0) {
// Get variable from local storage
var v = JSON.parse(localStorage.getItem(name));
// Set default value if value is not already set
if(v == null) {
setVar(name, defaultValue);
v = defaultValue;
}
return v;
}
推荐阅读
- kedro - “Hello_World”教程的数据版本控制
- jenkins - 如何在管道 Windows 中使用 GCloud
- django - 比较 DateField 与 timezone.now().date()
- git - 在两个未合并的功能分支之间重用代码
- python - 无法在 python 3.8.3 上安装 pygame
- fluentd - 是否可以预先和附加到流利的事件?
- functional-programming - 功能语言“在引擎盖下”
- hadoop - 我可以在本地机器上的 python 上运行 spark 命令到 hadoop 吗?
- node.js - MongoDB非对称返回数据,数组中的第一项完整返回,其余部分省略某些属性?
- react-native - 为什么 react-native 应用程序会立即关闭?