首页 > 解决方案 > 有没有办法使用“+=”将 1 添加到变量中?

问题描述

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

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!');
}

我不知道出了什么问题。

标签: javascriptvar

解决方案


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

局部变量:

 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存在于函数范围之外。它与您的程序一样长。


推荐阅读