如何解决计算器退格按钮
我试图弄清楚我的代码出了什么问题,因为当我尝试删除一个数字时,它最初会被删除,但是当我单击另一个数字时,它又在显示屏上再次显示,就好像它未被删除一样。我已经尝试了所有我知道的东西,但是没有用!
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()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。