我正在尝试用javascript制作一个计算器。我的下面的代码点击按钮,并将它们作为字符串一起添加。当用户按下sum或equals按钮时,该函数应该将字符串计算为等式并记录结果。例如结果==" 2 * 10"应该返回20.我的问题是,不是这样做,而是将它加在一起,而不是乘以或做任何其他函数,如 - 或除。
这是我的代码:
var result = 0;
function calc(digit){
if (digit == "sum"){
console.log(eval(result)) ;
}
else if (digit == "-"){
result + "-";
}
else if (digit == "+"){
result + "+";
}
else if (digit == "*"){
result + "*";
}
else if (digit == "/"){
result + "/";
}
else if (digit == "."){
result + ".";
}
else if (digit == "clear"){
location.reload();
}
else{
result += parseFloat(digit);
}
}
以下是每个功能按钮点击的示例:
<button class="large" type="button" value="divide"onclick=calc("/")>/</button>
答案 0 :(得分:3)
您需要使用赋值运算符。
例如,使用result + "-"
而不是result += "-"
。你在else块中有正确的想法。
无论如何,由于您的代码有多个if/else
条件,因此最好使用switch
语句
function calc(digit){
switch(digit) {
case: "sum":
console.log(eval(result));
break;
case "-":
result += "-";
break;
case "+":
result += "+";
break;
case: "*":
result += "*";
break;
case: "/":
result += "/";
break;
case: ".":
result += ".";
break;
case "clear":
location.reload();
break;
default:
result += parseFloat(digit);
}
}
以下是有关JavaScript中字符串连接的更多信息
答案 1 :(得分:2)
在if堆叠中,result + "-"
没有做任何事情。要将减号添加到结果的末尾,您可以执行诸如
result = result + "-";
或
result += "-";
目前,result + "-"
系统会对结果和字符串进行连接,但会立即丢失,因为您没有将其存储回结果中。