Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的JavaScript计算器总是给出0的输出?_Javascript_Html - Fatal编程技术网

为什么我的JavaScript计算器总是给出0的输出?

为什么我的JavaScript计算器总是给出0的输出?,javascript,html,Javascript,Html,我的JS计算器不断给出0的输出,无论是什么操作。我已经多次检查控制台,但没有任何错误,我也检查了我的变量是否是函数,但没有任何错误。我不确定是否有任何变量是相互参照的。我是JavaScript新手 我的计算器: var firstNo=0; var第二次否=0; var currentNo=0; var addedNo=0; 函数更新显示(个){ var screenn=document.getElementById('display'); var scdata=document.getEle

我的JS计算器不断给出0的输出,无论是什么操作。我已经多次检查控制台,但没有任何错误,我也检查了我的变量是否是函数,但没有任何错误。我不确定是否有任何变量是相互参照的。我是JavaScript新手

我的计算器:

var firstNo=0;
var第二次否=0;
var currentNo=0;
var addedNo=0;
函数更新显示(个){
var screenn=document.getElementById('display');
var scdata=document.getElementById('display').innerHTML;
串(个);
字符串(scdata);
screenn.innerHTML=scdata+nos;
如果(currentNo==0){
addedNo=字符串(firstNo);
addedNo=addedNo+个;
firstNo=编号(添加编号);
}如果(currentNo==1){
addedNo=字符串(第二个编号);
addedNo=addedNo+个;
第二个编号=编号(添加编号);
}	
}
函数clearScreen(){
document.getElementById('display').innerHTML=“”;
firstNo=0;
第二个NO=0;
currentNo=0;
}
函数设置运算符(opo){
var算子=opo;
currentNo=currentNo+1;
document.getElementById('display').innerHTML=“”;
}
函数计算(){
如果(运算符=“+”){
document.getElementById('display').innerHTML=firstNo+secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}如果(运算符=“*”){
document.getElementById('display').innerHTML=firstNo*secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}如果(运算符=“/”){
document.getElementById('display').innerHTML=firstNo/secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}如果(运算符“-”){
document.getElementById('display').innerHTML=firstNo-secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}
}
#键盘{
显示:表格;
}
.行{
显示:表格行;
}
#展示{
背景颜色:黄色;
}

1.
2.
3.
+
4.
5.
6.
-
7.
8.
9
/
.
0
X
*
=
尝试此修复程序: -您需要将var operator=“”放在主脚本的顶部。 -您需要将if(运算符={yourOperator})更改为if(运算符=={yourOperator})

注意:您在使用“=”而不是“==”或“==”创建变量时出现了一个语法/逻辑错误,另外一个逻辑错误使var“operator”成为本地变量。 下一次,在你的脚本顶部加上“使用严格”;这应该会暴露出一些语法错误,就像使用“if(operator=“+”)时出现的语法错误一样

var firstNo=0;
var第二次否=0;
var currentNo=0;
var addedNo=0;
//第一次改变
var运算符=“”
函数更新显示(个){
var screenn=document.getElementById('display');
var scdata=document.getElementById('display').innerHTML;
串(个);
字符串(scdata);
screenn.innerHTML=scdata+nos;
如果(currentNo==0){
addedNo=字符串(firstNo);
addedNo=addedNo+个;
firstNo=编号(添加编号);
}如果(currentNo==1){
addedNo=字符串(第二个编号);
addedNo=addedNo+个;
第二个编号=编号(添加编号);
}	
}
函数clearScreen(){
document.getElementById('display').innerHTML=“”;
firstNo=0;
第二个NO=0;
currentNo=0;
}
函数设置运算符(opo){
//第二次变化
操作员=opo;
currentNo=currentNo+1;
document.getElementById('display').innerHTML=“”;
}
函数计算(){
//第三个变化
如果(运算符=“+”){
document.getElementById('display').innerHTML=parseFloat(firstNo)+parseFloat(secondNo);
console.log(firstNo)
firstNo=0;
第二个NO=0;
currentNo=0;
}
//第四次变化
如果(运算符=“*”){
document.getElementById('display').innerHTML=firstNo*secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}
//第五次改变
如果(运算符=“/”){
document.getElementById('display').innerHTML=firstNo/secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}
//第六变化
如果(运算符=“-”){
document.getElementById('display').innerHTML=firstNo-secondNo;
firstNo=0;
第二个NO=0;
currentNo=0;
}
}
#键盘{
显示:表格;
}
.行{
显示:表格行;
}
#展示{
背景颜色:黄色;
}

1.
2.
3.
+
4.
5.
6.
-
7.
8.
9
/
.
0
X
*
=

String(nos)是什么意思正在做什么?同样适用于编号(firstNo)?这种类型的类型转换可以工作,但没有分配或其他用途,它将无效。一些其他提示
=
是赋值运算符,即使在
中,如果
子句中,它也不会比较值。您需要
=
或更好的
==
进行严格比较。子句中的结果是指定值的所谓值的结果。仍然不起作用:(比我快几秒钟:)啊,对不起@MikeWood:D