Javascript 为什么我的java脚本计算器不工作

Javascript 为什么我的java脚本计算器不工作,javascript,Javascript,我想做一个计算器,在计算之前显示点击的数字。此版本未完成,但显示数字的代码已完成,但未按预期工作 函数getHistory{ return document.querySelector.history-value.innerText; } 函数printHistorynum{ document.querySelector.history-value.innerText=num; } 函数getOutput{ document.getElementByIdoutput-value.innertx

我想做一个计算器,在计算之前显示点击的数字。此版本未完成,但显示数字的代码已完成,但未按预期工作

函数getHistory{ return document.querySelector.history-value.innerText; } 函数printHistorynum{ document.querySelector.history-value.innerText=num; } 函数getOutput{ document.getElementByIdoutput-value.innertxt; } 函数printOutputnum{ document.getElementByIdoutput-value.innerText=num; } 让getOperator=document.getElementsByClassNameoperator; 对于var i=0;i

C 总工程师 % &247; 7. 8. 9 &时代; 4. 5. 6. - 1. 2. 3. + 0 = 这是因为输出没有从函数getOutput获取任何值,因为没有返回任何内容

由于这一事实,输出被设置为未定义。当您将未定义的id与数字(无论它是什么)连接在一起时,它们被强制为字符串。这意味着您将得到未定义7、未定义9、未定义DN等

为了证明这一点,我们可以使用短路评估:

      let output=getOutput(); // output is undefined.
      if (output!=NaN) {
      output= output || "" + this.id //output plus n is "n"
这将检查输出是否为falsy-由于undefined为falsy,它将返回一个空字符串,并用This.id表示该字符串

例如:

C 总工程师 % &247; 7. 8. 9 &时代; 4. 5. 6. - 1. 2. 3. + 0 = 函数getHistory{ return document.querySelector.history-value.innerText; } 函数printHistorynum{ document.querySelector.history value.innerText=num; } 函数getOutput{ document.getElementByIdoutput-value.innertxt; } 函数printOutputnum{ document.getElementByIDoutValue.innerText=num; } 让getOperator=document.getElementsByClassNameoperator; 对于var i=0;i罪魁祸首在此函数中:

function getOutput(){
  document.getElementById("output-value").innertxt;
}
这里有两个问题:

1-注意输入错误:是innerText,不是innertxt! 2-此函数不返回值为innerText,事实上它不向调用它的代码返回任何内容,因此为未定义

此外,要显示所有按下的数字,可以使用+=,将数字附加到字符串输出中,如下所示:

if (output!=NaN) {
      output+=this.id
      printOutput(output)
    }
还向操作符的onclick处理程序添加类似的内容。

C 总工程师 % &247; 7. 8. 9 &时代; 4. 5. 6. - 1. 2. 3. + 0 = 函数getHistory{ return document.querySelector.history-value.innerText; } 函数printHistorynum{ document.querySelector.history value.innerText=num; } 函数getOutput{ return document.getElementByIdoutput-value.innerText; } 函数printOutputnum{ document.getElementByIDoutValue.innerText=num; } 让getOperator=document.getElementsByClassNameoperator; 对于var i=0;i你好请把你的实际问题贴在帖子里。我猜你在显示未定义之前有问题
然而,如果这不是你想要的,我也没办法知道。将你的问题贴在问题中:@radarbob不,它不起作用:但我如何解决它以显示所有按的数字?这很有帮助!如果这是可行的,考虑把这个帖子标记为答案。
if (output!=NaN) {
      output+=this.id
      printOutput(output)
    }