如何使用JavaScript';不使用eval创建计算器的功能?

如何使用JavaScript';不使用eval创建计算器的功能?,javascript,html,Javascript,Html,这有点乱,但我需要JavaScript的函数来计算。我避免使用eval,因为我的老师没有教过。你能帮我吗 函数A7(){ var num=document.getElementById(7).value; document.getElementById(“显示”).value=document.getElementById(“显示”).value+num } 功能A8(){ var num=document.getElementById(8).value; document.getElemen

这有点乱,但我需要JavaScript的函数来计算。我避免使用
eval
,因为我的老师没有教过。你能帮我吗

函数A7(){
var num=document.getElementById(7).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
功能A8(){
var num=document.getElementById(8).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A9(){
var num=document.getElementById(9).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A10(){
var num=document.getElementById(10).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A4(){
var num=document.getElementById(4).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
职能A5(){
var num=document.getElementById(5).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A6(){
var num=document.getElementById(6).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A11(){
var num=document.getElementById(11).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
功能A1(){
var num=document.getElementById(1).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A2(){
var num=document.getElementById(2).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
功能A3(){
var num=document.getElementById(3).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A12(){
var num=document.getElementById(12).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
函数A0(){
var num=document.getElementById(0).value;
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
}
var firstNum=getElementById(显示);
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
var secondNum=getElementById(显示);
document.getElementById(“显示”).value=document.getElementById(“显示”).value+num
操作=”;
函数计算(){
如果(操作“+”){
firstNum+secondNum;
document.getElementById(“display”).value=firstNum+secondNum;
}else if(operation=“-”){
firstNum-secondNum;
document.getElementById(“display”).value=firstNum-secondNum;
}else if(operation=“/”){
firstNum/secondNum;
document.getElementById(“display”).value=firstNum/secondNum;
否则{
firstNum*secondNum;
document.getElementById(“display”).value=firstNum*secondNum;
}
}

calculate()
需要解析
display
字段以获取两个数字和运算。您可以使用简单的正则表达式来完成此操作

此外,您需要使用
=
来比较字符串,而不是用于赋值的
=

写这样的句子没有意义

firstNum + secondNum;
这将计算总和,但不做任何处理。您只需要将计算结果指定给
显示值的行

函数计算(){
var input=document.getElementById(“display”).value.match(/^(\d+)([+\-*\/])(\d+$/);
如果(!输入){
警报(“无需计算”);
返回;
}
var firstNum=parseInt(输入[1]);
var操作=输入[2];
var secondNum=parseInt(输入[3]);
如果(操作==“+”){
document.getElementById(“display”).value=firstNum+secondNum;
}else if(操作=“-”){
document.getElementById(“display”).value=firstNum-secondNum;
}else if(操作==“/”){
document.getElementById(“display”).value=firstNum/secondNum;
}否则{
document.getElementById(“display”).value=firstNum*secondNum;
}

}
我不确定这是否是一个复制粘贴错误,但如果您错过了一个关闭标记,则在最后一个错误之后错过了一个},并且您错过了一个关闭标记
var firstNum=getElementById(display)
您从未设置变量
显示
。我猜你是想引用它。你用同样的东西来设置
secondNum
显示如何同时包含第一个和第二个数字?数字键的所有功能都是一样的,除了它们附加的数字。您应该编写一个将数字作为参数的函数,或者从
this.id
获取它,而不是编写10个不同的函数。Barmar还有一个问题可以解释代码。match(/^(\d+)([+\-*\/])(\d+)$/;对于我来说,如果我们有什么可以替换的代码,因为我还没有学会。Tks manGo可以访问www.regular-expression.com了解正则表达式。