2016-02-29 87 views
0

我想用javascript製作一個計算器。我的下面的代碼將按鈕點擊並將它們作爲一個字符串添加到一起。當用戶按下sum或equals按鈕時,該函數應該將該字符串評估爲一個等式並記錄結果。例如結果==「2 * 10」應該返回20.我的問題是,不是這樣做,它只是將它加在一起,而不是乘以或做任何其他功能,如 - 或分割。無法連接JavaScript中的字符串

這裏是我的代碼:

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> 

回答

3

您需要使用賦值運算符這一點。

例如,而不是result + "-",請使用result += "-"。你在其他區塊有正確的想法。

不管怎麼說,因爲你的代碼有多個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

+0

哈哈!傻我!謝謝! – James

2

在一些詳細信息,請如果堆棧,result + "-"不做任何事情。爲了減號添加到結果的末尾,你會做一些如

result = result + "-"; 

result += "-"; 

目前,result + "-"對系統做的結果的拼接和字符串,但馬上失去因爲你沒有把它存儲回結果。