有没有一种方法可以使用“ + =”将1加到变量中?

时间:2019-04-16 18:01:35

标签: javascript var

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

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

我不知道出了什么问题。

1 个答案:

答案 0 :(得分:2)

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

局部变量:

 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存在于函数范围之外。只要您的程序有效,它就可以存在。