无法连接 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

中字符串连接的更多信息

http://www.w3schools.com/jsref/jsref_concat_string.asp

在您的 if 堆栈中,result + "-" 不执行任何操作。要将减号添加到结果的末尾,您可以执行

result  = result + "-";

result += "-";

目前,result + "-"让系统进行结果和字符串的连接,但立即丢失,因为您没有将它存储回结果中。