繁体   English   中英

计算器退格按钮

[英]Calculator backspace button

我试图找出我的代码有什么问题,因为当我尝试删除 1 个号码时,它最初被删除,但是当我单击另一个号码时,它再次显示在显示屏上,好像它没有被删除。 我已经尝试了我所知道的一切,但它不起作用!

function backspace() {
  var number1 = document.getElementById("display").value
  var number1 = (document.getElementById("display").value = number1.substr(
    0,
    number1.length - 1
  ))
  refresh()
}

function refresh() {
  document.getElementById("display").value = number1
}

提前致谢!

您需要使用:

function backspace() {
  var number1 = document.getElementById("display").value;
  number1 = number1.substring(0, number1.length - 1);
  refresh()
}

- - 或者 - -

function backspace() {
  var number1 = document.getElementById("display").value;
  number1 = number1.slice(0, -1);
  refresh()
}

来源: https : //tecadmin.net/remove-last-character-from-string-in-javascript/

number1被修改了,但是不在函数refresh的范围内

代码需要重构和明确选择变量名。

范围

代码存在范围问题

function backspace() {
    var number1 = something //declared here
}
function refresh() {
   //number1 is not accessible here :(
}

两次声明同一个变量

var number1 =.....
var number1 =......

请一直使用let而不是var :)

变量的好选择

number1作为所有变量的名称是一个非常糟糕的主意。

更好的方法如下:

function backspace(){
    let displayValue = .....
    let changedValue = .....
}

一旦您更改了变量名称,您可能会注意到您实际上并没有修改“真实”数字,您只是在修改 DOM(或 HTML)中的值

试试这个形状

function backspace() {
  var number1 = document.getElementById("display").value

  number1 = number1.slice(0,-1))
}

function refresh() {
backspace()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM