Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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变量_Javascript - Fatal编程技术网

更新现有javascript变量

更新现有javascript变量,javascript,Javascript,这可能不是一个简单的问题,因为我的javascript技能非常有限。我要做的就是修改函数中的变量,然后返回新的变量值,以便再次在函数中使用 这方面的一个例子是一个简单的按钮,每次单击该按钮时将从变量中扣除10分。就像每次点击都会逐渐倒计时一样。问题在于,变量不会在每次返回时更新 也许我开始使用javascript的方法是有出路的,这就是为什么我似乎无法找到很多关于这方面的信息。这是密码 <html> <head> <script type="text/javascr

这可能不是一个简单的问题,因为我的javascript技能非常有限。我要做的就是修改函数中的变量,然后返回新的变量值,以便再次在函数中使用

这方面的一个例子是一个简单的按钮,每次单击该按钮时将从变量中扣除10分。就像每次点击都会逐渐倒计时一样。问题在于,变量不会在每次返回时更新

也许我开始使用javascript的方法是有出路的,这就是为什么我似乎无法找到很多关于这方面的信息。这是密码

<html>
<head>
<script type="text/javascript">

/*starting bank account*/
var bank = "200";
/* i want this function to deduct ten from the starting bank account and update the bank variable */
function Bank(bank) {
    var printout = document.getElementById("display_bank_result_here");
    bank = bank - 10;
    printout.innerHTML = bank;
    return bank;
}


</script>
</head>
<body>
<button onclick="Bank(bank)">remove 10 from bank</button>
<p id='display_bank_result_here'></p>
</body>
</html>

/*开办银行帐户*/
var bank=“200”;
/*我希望此函数从起始银行帐户中扣除10,并更新银行变量*/
功能银行{
var printout=document.getElementById(“在此处显示银行结果”);
银行=银行-10;
printout.innerHTML=银行;
返回银行;
}
从气缸组中取出10个

首先感谢所有在场的人。我希望有一天我能有足够的技能来回报我所在位置上的其他人


Robert

不需要在函数中传递参数组。只要这样做:

function Bank() {
    var printout = document.getElementById("display_bank_result_here");
    bank = bank - 10;
    printout.innerHTML = bank;
}
如果将局部变量(参数)命名为bank,则它将隐藏全局变量bank。对账单银行=银行-10;将只应用于局部变量,而不是全局变量。

这是由作用域引起的。 范围定义了变量和方法的定义/位置

函数中的所有内容都在该特定函数的范围内。 函数
Bank
也定义了相同的变量Bank。 这将覆盖在该函数脚本顶部定义的变量库

有两个选项:可以完全删除函数的bank变量或更改其名称。对于您正在使用的内容,我将删除它

将您的
银行
功能更改为此

function Bank ()
{
    var printout=document.getElementById("display_bank_result_here");
    bank=bank-10;
    printout.innerHTML =bank;
    // You don't need to return it as it is changed inside the function
}
这是因为您使用了变量
bank

在函数
Bank
中,
Bank
变量指的是本地变量,而不是全局变量。只要使用函数的
return
值来更新全局变量,这应该不是问题:

<button onclick="bank = Bank(bank)">remove 10 from bank</button>
这样就不需要返回

此外,您可以完全避免使用全局变量,在
打印输出中输入起始值:

<button onclick="decreaseBank()">remove 10 from bank</button>
<p id='display_bank_result_here'>200</p>

希望有帮助。

第一个问题是,您将bank设置为字符串变量,它应该是
var bank=200,编辑,但正如其他人已经回答的那样,您不需要通过函数参数传递它,因为它已经有了“全局范围”,不必客气,但请记住给那些通过提交答案提供帮助的人。我真的很喜欢第二种方法,对我来说似乎更容易,谢谢你的建议。
<button onclick="decreaseBank()">remove 10 from bank</button>
<p id='display_bank_result_here'>200</p>
function decreaseBank () {
    var printout = document.getElementById("display_bank_result_here");

    // with subtraction the value of `innerHTML` will be converted in Number
    // automatically.
    var bank = printout.innerHTML - 10;

    printout.innerHTML = bank;
}