无法连接 JavaScript 中的字符串
Can't concatenate a string in JavaScript
我正在尝试用 javascript 制作一个计算器。我下面的代码接受按钮点击并将它们全部添加为一个字符串。当用户按下求和或等于按钮时,该函数应该将字符串计算为方程式并记录结果。例如 result == "2 * 10" 应该 return 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>
为此您需要使用赋值运算符。
例如,使用 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
中字符串连接的更多信息
在您的 if 堆栈中,result + "-"
不执行任何操作。要将减号添加到结果的末尾,您可以执行
result = result + "-";
或
result += "-";
目前,result + "-"
让系统进行结果和字符串的连接,但立即丢失,因为您没有将它存储回结果中。
我正在尝试用 javascript 制作一个计算器。我下面的代码接受按钮点击并将它们全部添加为一个字符串。当用户按下求和或等于按钮时,该函数应该将字符串计算为方程式并记录结果。例如 result == "2 * 10" 应该 return 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>
为此您需要使用赋值运算符。
例如,使用 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
中字符串连接的更多信息在您的 if 堆栈中,result + "-"
不执行任何操作。要将减号添加到结果的末尾,您可以执行
result = result + "-";
或
result += "-";
目前,result + "-"
让系统进行结果和字符串的连接,但立即丢失,因为您没有将它存储回结果中。