javascript - 有没有办法使用“+=”将 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!');
}
我不知道出了什么问题。
解决方案
这似乎是对局部变量如何工作的误解。
局部变量:
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
存在于函数范围之外。它与您的程序一样长。
推荐阅读
- javascript - Why doesn't the link generate where indicates
- python - 列表推导中的 if 和 else 有问题。如果列表为空,我需要将列表值设为某个值
- sql - 嵌套查询未从 Oracle 11g 中的主查询中获取 Oracle 中的值
- android - Firebase 存储 getDownloadUrl() 方法无法解析
- html - 如何添加 Powered by: 在横幅广告上?
- json - Flutter JSON String/Int 命令
- c - printf 打印错误的特殊字符
- java - 如何将文件分成几部分并分配它(多字部分)?
- google-cloud-speech - Google Speech to text 的超时问题
- java - Java 10 上的 Groovy 3(模块信息)