Javascript 如何将永久数据添加到变量中

Javascript 如何将永久数据添加到变量中,javascript,Javascript,我在做一个项目,玩一个石头剪刀布游戏 游戏运行得很好,但我想添加一些东西。一个定点系统,每次玩家赢了它都会加1,但我似乎无法做到这一点。我已经尝试了近2天的解决方法,但我似乎找不到任何解决方案。问题是代码可以工作,但是在我记录了将1添加到变量的函数之后,它返回到它的原始值,即0 const one = 1 function addone(test){ test += 1 } addone(one) console.log(one) 这会打印原始值,就像函数没有对其做任何操作一样。我很困

我在做一个项目,玩一个石头剪刀布游戏 游戏运行得很好,但我想添加一些东西。一个定点系统,每次玩家赢了它都会加1,但我似乎无法做到这一点。我已经尝试了近2天的解决方法,但我似乎找不到任何解决方案。问题是代码可以工作,但是在我记录了将1添加到变量的函数之后,它返回到它的原始值,即0

const one = 1
function addone(test){
    test += 1
}
addone(one)
console.log(one)

这会打印原始值,就像函数没有对其做任何操作一样。我很困惑。

我发现您的代码中有两个问题:

  • one
    是一个
    const
    变量。这意味着您不能修改其初始值
  • test
    是函数内部的局部变量,这意味着函数不会修改作为参数传递的变量的值(
    one
有一个操作符(
++
)可以添加一个单元,我强烈建议您使用它而不是创建一个函数:

var one = 1

one++;
console.log(one)
如果要使用函数,必须执行以下操作:

var one = 1

function addone(test){
    return test+1;
}

one = addone(one);
console.log(one)
就将永久数据存储到javascript变量而言,这是不可能的。变量存储在RAM中,这意味着当您停止程序时,程序的所有数据都将被擦除。永久存储在数据库和其他复杂的数据结构中


如果你想玩多个游戏,你应该考虑允许玩家在程序完成之前玩更多的游戏。

非常感谢你,我从来没有想到我可以得到更多的哑巴,所以我不能操纵它,因为它只是我作为参数输入的那个变量的拷贝。这意味着函数根本没有触及变量。我希望我能回到我母亲的子宫里

康斯特,这只是一个打字错误,很抱歉。
我不知道这个网站非常活跃,我想我会等上几天才能得到回复,非常感谢,祝你过得愉快

函数不会修改参数的值,因为Javascript是按值传递原语的,而不是按引用传递。正如@BrunoLipovac comment Javascript是按值传递原语的。我已经做了一个低级的解释,以提供一个容易理解的解释。欢迎!。Mozilla有很多文章解释了javascript的基本内容:。