计算器:后退键在Javascript中不起作用

计算器:后退键在Javascript中不起作用,javascript,html,Javascript,Html,我需要你的专业知识。我正在做一个计算器,但后退键不起作用。除返回键外,所有功能都正常。我怎样才能使后钥匙工作?能够删除计算器中的最后一个输入。下面是HTML和Javascript的代码。谢谢你在这方面的帮助 const计算器={ 初始值:“0”, 第一个操作数:null, 第二个操作数:false, 运算符:空, }; 功能显示数字(数字){ 常量{initialValue,secondOperand}=计算器; if(第二个操作数===true){ calculator.initialVal

我需要你的专业知识。我正在做一个计算器,但后退键不起作用。除返回键外,所有功能都正常。我怎样才能使后钥匙工作?能够删除计算器中的最后一个输入。下面是HTML和Javascript的代码。谢谢你在这方面的帮助

const计算器={
初始值:“0”,
第一个操作数:null,
第二个操作数:false,
运算符:空,
};
功能显示数字(数字){
常量{initialValue,secondOperand}=计算器;
if(第二个操作数===true){
calculator.initialValue=数字;
calculator.secondOperand=false;
}否则{
calculator.initialValue=initialValue=='0'?数字:initialValue+数字;
}
}
函数displayDecimal(句点){
if(calculator.second操作数===true){
calculator.initialValue=“0。”
calculator.secondOperand=false;
返回
}
如果(!calculator.initialValue.includes(句点)){
calculator.initialValue+=点;
}
}
功能显示操作员(oper){
常量{FirstOperator,initialValue,运算符}=计算器
常量inputValue=parseFloat(初始值);
if(运算符和计算器.第二个操作数){
计算器.operator=oper;
返回;
}
if(firstOperand==null&&!isNaN(inputValue)){
calculator.FirstOperator=输入值;
}else if(操作员){
常量结果=计算(第一个操作数、输入值、运算符);
calculator.initialValue=`${parseFloat(result.toFixed(7))}`;
calculator.firstOperand=结果;
}
calculator.SecondOperator=true;
计算器.operator=oper;
}
函数退格(){
}
函数计算(第一个操作数、第二个操作数、运算符){
开关(操作员){
格“+”:
返回第一个操作数+第二个操作数;
打破
案例'-':
返回第一个操作数-第二个操作数;
打破
案例“*”:
返回第一个操作数*第二个操作数;
打破
案例“/”:
返回第一个操作数/第二个操作数;
打破
违约:
返回第二个操作数;
}
}
函数updateDisplay(){
const display=document.querySelector('.calc display');
display.value=calculator.initialValue;
}
函数clearCalc(){
calculator.initialValue='0';
calculator.firstOperand=null;
calculator.secondOperand=false;
calculator.operator=null
}
updateDisplay();
const keys=document.querySelector('.calc keys');
keys.addEventListener('click',e=>{
常数{target}=e;
常量{value}=目标;
如果(!target.matches('button')){
返回;
}
开关(值){
格“+”:
案例'-':
案例“*”:
案例“/”:
案例“=”:
显示运算符(值);
打破
案例“”:
显示十进制(数值);
打破
“透明屏幕”案例:
clearCalc();
打破
“回来”一案:
如果(display.value.length>1){
display.value=calculator.initialValue.slice(0,-1);
}否则{
calculator.initialValue=“0”;
}
打破
违约:
if(Number.isInteger(parseFloat(value))){
显示数字(值);
}
}
updateDisplay();
});

C
&中尉
&分开
&时代
7.
8.
9
-
4.
5.
6.
+
1.
2.
3.
.
0
=
几个问题

  • 您没有“返回”值
  • 您没有名为display的元素
  • 这个效果更好

    case '<':
      if (calculator.initialValue.length > 1) {
        calculator.initialValue = calculator.initialValue.slice(0, -1);
      } else {
        calculator.initialValue = "0";
      }
    

    case'查看
    case“back”
    您拥有的
    <
    -此处的
    不是
    back
    ,因此它与
    case
    不匹配,谢谢@mplungjan。(非常感谢。)