在javascript中使用一种我可以';我好像哪儿也找不到

在javascript中使用一种我可以';我好像哪儿也找不到,javascript,Javascript,因此,我有一个保存和加载功能,我大概一年前就在研究,但在这个庄园里找不到保存和加载的例子。我的问题是,我没有将这些数字保存并加载为整数,但我记不起或找不到要将这些数字保存/加载为整数需要做什么。很抱歉问了这么一个琐碎的问题,但这总是一个好去处 function saveGame() { localStorage["ClickMiner.savedBefore"] = savedBefore; localStorage["ClickMiner.

因此,我有一个保存和加载功能,我大概一年前就在研究,但在这个庄园里找不到保存和加载的例子。我的问题是,我没有将这些数字保存并加载为整数,但我记不起或找不到要将这些数字保存/加载为整数需要做什么。很抱歉问了这么一个琐碎的问题,但这总是一个好去处

   function saveGame() {
            localStorage["ClickMiner.savedBefore"] = savedBefore;
            localStorage["ClickMiner.manaRefilCost"] = manaRefilCost;
            localStorage["ClickMiner.rocks"] = rocks;
            localStorage["ClickMiner.miningXp"] = miningXp;
            localStorage["ClickMiner.miningLevel"] = miningLevel;
            localStorage["ClickMiner.pickaxes"] = pickaxes;
            localStorage["ClickMiner.pebbleGrowers"] = pebbleGrowers;
            //localStorage["ClickMiner.rockTier"] = rockTier;
            localStorage["ClickMiner.rockTierCost"] = rockTierCost;
            localStorage["ClickMiner.bankedRocks"] = bankedRocks;
            updateTextBox("Game Saved");
            return true;
    } 

     function loadGame() {
            savedBefore = (localStorage["ClickMiner.savedBefore"]);
            manaRefilCost = (localStorage["ClickMiner.manaRefilCost"]);
            rocks  = (localStorage["ClickMiner.rocks"]);
            miningXp = (localStorage["ClickMiner.miningXp"]);
            miningLevel = (localStorage["ClickMiner.miningLevel"]);
            pickaxes = (localStorage["ClickMiner.pickaxes"]);
            pebbleGrowers = (localStorage["ClickMiner.pebbleGrowers"]);
            //rockTier = (localStorage["ClickMiner.rockTier"]);
            rockTierCost = (localStorage["ClickMiner.rockTierCost"]);
            bankedRocks = (localStorage["ClickMiner.bankedRocks"]);
            updateTextBox("Game Loaded");
            return true;
    } 

     function newGame() {
        savedBefore = 1;
        localStorage["ClickMiner.savedBefore"] = savedBefore;
        localStorage["ClickMiner.manaRefilCost"] = manaRefilCost;
        localStorage["ClickMiner.rocks"] = rocks;
        localStorage["ClickMiner.miningXp"] = miningXp;
        localStorage["ClickMiner.miningLevel"] = miningLevel;
        localStorage["ClickMiner.pickaxes"] = pickaxes;
        localStorage["ClickMiner.pebbleGrowers"] = pebbleGrowers;
        //localStorage["ClickMiner.rockTier"] = rockTier;
        localStorage["ClickMiner.rockTierCost"] = rockTierCost;
        localStorage["ClickMiner.bankedRocks"] = bankedRocks;
        location.reload();
        updateTextBox("New Game Started.");
        return true;
    } 

Localstorage仅适用于字符串

parseInt(variable)

应该做这项工作

如果你想让一个东西成为一个整数,你所需要做的就是使用
parseInt
函数。localStorage中存储的所有内容都是字符串,因此您可以在
loadGame()
中进行整数转换

像这样:

function loadGame() {
    savedBefore = parseInt(window.localStorage["ClickMiner.savedBefore"], 10);
    // and so on...

}

parseInt(aThing,10)
10
是基数,这意味着您需要的是以10为基数的整数(0-9),而不是二进制、十六进制或其他一些数字系统。

我宁愿确保我的数据类型是整数,而不是将数据保存为整数。如果我非常确定我的数据是否为预期类型,那么我将使用
JSON.stringify
JSON.parse
在写操作和读操作之间切换。因为
localStorage
将只接受字符串值。这意味着,若你们给一个数字作为值,它将被转换成字符串。因此,localStorage的输出类型将是string

通过考虑以上所有内容,这里有一个快速片段,通过避免对代码进行许多更改来实现您的期望

const localStorageProxy=新代理(localStorage{
获得(目标、道具){
if(target.hasOwnProperty(prop)和目标类型[prop]=“function”){
返回目标[道具];
}
返回JSON.parse(target.getItem(prop)| |“null”);
},
设定(目标、道具、价值){
setItem(prop,JSON.stringify(value));
}
});
//测试
log(localStorageProxy[“testNumber”]);
localStorageProxy[“testNumber”]=123;
log(localStorageProxy[“testNumber”],localStorageProxy的类型[“testNumber”])可能重复的