【问题标题】:Is there a way to add 1 to a variable using "+="? [duplicate]有没有办法使用“+=”将 1 添加到变量中? [复制]
【发布时间】:2019-04-16 18:01:34
【问题描述】:

我正在尝试使用 += 函数向变量添加值。这是我正在使用的代码:

function getAnswer() {
    var num1 = Number(document.getElementById('numone').value);
    var num2 = Number(document.getElementById('numtwo').value);
    var oper = document.getElementById('oper').value;
    var numberOfEquation = 0;
    numberOfEquation += 1;
    if (oper == '+') {
        var p = document.createElement('p');
        var txt = document.createTextNode(num1+num2 + ' - Equation ' + numberOfEquation);
        p.appendChild(txt);
        document.body.appendChild(p);
    } else if (oper == '-') {
        var p2 = document.createElement('p');
        var txt2 = document.createTextNode(num1-num2 + ' - Equation ' + numberOfEquation);
        p2.appendChild(txt2);
        document.body.appendChild(p2);
    }
    console.log('You did an equation!');
}

我不知道出了什么问题。

【问题讨论】:

  • 是的,而且?做对了什么?这里有什么问题?您可以执行v++ 或++v 或v += 1,所有这些都会增加一个变量。您是否希望每次运行该功能时都增加它?如果是这样你不能使用局部变量,你必须在函数之外声明numberOfEquation。
  • 你是在声明变量然后加1,这里永远是1。
  • 不使用空格并不意味着 num1+num2 的传递方式与 num2 + ' - Equation ' 的传递方式不同 - 将您的等式用括号括起来。
  • 我猜你想把var numberOfEquation = 0;移出函数
  • @ChrisW。这与吊装无关。这只是变量范围——每次调用函数时他都会创建一个新变量。

标签: javascript var


【解决方案1】:

这似乎是对局部变量如何工作的误解。

局部变量:

 function x() {
   var y = 0;
   ++y;
   return y;
 }

 x(); // => 1
 x(); // => 1
 x(); // => 1

每次都返回1,因为var y 明确声明了一个局部变量。它只会在该函数执行期间存在。一旦函数终止,该变量就不再存在。当函数再次启动时,它会创建一个全新的函数。

以下是使用持久变量的不同方法:

 var y = 0;

 function x() {
   ++y;
   return y;
 }

 x(); // => 1
 x(); // => 2
 x(); // => 3

这是因为y 存在于函数范围之外。它与您的程序一样长。

【讨论】:

  • 谢谢,我改了,现在完美了。
  • 套用 YouTube 的话:“一定要支持并接受!”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多