Javascript JS中的数学计算器脚本错误

Javascript JS中的数学计算器脚本错误,javascript,html,Javascript,Html,我的剧本有什么遗漏吗 当我按下减号按钮时,一切都正常,但当我按下加号按钮时,计算器就出错了。它的节目1,11,21,~一切都以1结束 这是我的密码: 函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFun

我的剧本有什么遗漏吗

当我按下减号按钮时,一切都正常,但当我按下加号按钮时,计算器就出错了。它的节目1,11,21,~一切都以1结束

这是我的密码:

函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=document.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - + $0试试这个:-

使用parseInt函数将字符串值转换为数字类型

函数myFunctionDown{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0您需要将字符串设置为整数/数字,因为它当前是一个字符串,所以它连接值而不是添加值。可以使用parseIntdocument.getElementByIdmyNumber.value

这将使值变成整数,例如1变成1

函数myFunctionDown{ var x=document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0您需要将输入值解析为一个数字,因为所有输入值实际上都是字符串

函数myFunctionDown{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=parseIntdocument.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0首先,您必须将输入值转换为数字,无需将其乘以1。使用parseInt函数进行转换

<button onclick="myFunctionDown()">-</button>
<input type="number" id="myNumber" value="0">
<button onclick="myFunctionUp()">+</button>
<br/><br/>
$ <span id="demo">0</span>
<script>
function myFunctionDown() {
    var x = parseInt(document.getElementById("myNumber").value);
    var y = 1;
    var a = x-y;
    document.getElementById("myNumber").stepUp(-1);
    document.getElementById("demo").innerHTML = a;
}
function myFunctionUp() {
    var x = parseInt(document.getElementById("myNumber").value);
    var y = 1;
    var a = x+y;
    document.getElementById("myNumber").stepUp(1);
    document.getElementById("demo").innerHTML = a;
}
</script>
Do+document.getElementByIdmyNumber.value。问题解决了

原因:

按定义document.getElementByIdmyNumber.value返回x中的字符串值 JS迫切需要防止编译器错误。因此,在执行x+y操作时,即数字+字符串。默认情况下,JS会自动将数字值类型转换为字符串,并将“+”解释为串联运算符。 你可以用同样的JS来帮助你。当JS处理字符串前的“+”符号时,如果该字符串只不过是数字字符。它被转换成数字

有关详细信息,请参阅和

函数myFunctionDown{ var x=+document.getElementByIdmyNumber.value; 变量y=1; var a=x-y*1; document.getElementByIdmyNumber.steup-1; document.getElementByIddemo.innerHTML=a; } 函数myFunctionUp{ var x=+document.getElementByIdmyNumber.value; 变量y=1; 变量a=x+y*1; document.getElementByIdmyNumber.stepUp1; document.getElementByIddemo.innerHTML=a; } - +
$0在您的第一句话中应该是数字而不是整数,您需要将数字设置为整数。您需要将字符串解析为数字。@chŝdk啊,谢谢哈哈。更新:事实上JavaScript中没有整数类型,应该是数字。@chŝdk说得好。。!!!将是数字而不是整数。同样,JavaScript中没有整数类型,它应该是数字。啊,是的。它应该是数字类型。编辑