2013-11-01 31 views
-2

我是JavaScript的初學者,我正在嘗試製作一個簡單的計算器。我遇到的問題是計算器返回實際方程(作爲字符串)而不是結果值。 Here is a jsFIDDLE documentJavascript計算器返回字符串而不是值

$(document).ready(function() { 
var score = ""; 

$("#nOne").click(function() { 
    score += 1; 
}); 
$("#nTwo").click(function() { 
    score += 2; 
}); 

$("#add").click(function() { 
    score += "+"; 
}); 

$("#nEqual").click(function() { 
    alert(score); 
}); 

});

還有一個優先使用< input type="button">< div>作爲一個按鈕,或者他們都在做一個簡單的計算器相同?

+0

好的提示,但仍然添加按鈕會搞砸了。這是在我看來寫計算器的邏輯錯誤 – adam187

+0

@ raina77ow如何設置'score = 0'來解決問題?還有'score + ='+'',它將'score'轉換爲一個字符串...... – Teemu

+0

Web充滿了「簡單的javascript計算器示例」,請只搜索一下以找到它們(30 200 000條結果),不是我倒下了。 – Teemu

回答

2

您可以使用eval()JavaScript函數。

在該示例中,按鈕不添加值,而是連接字符串值。按#nOne,#add,#nTwo後,你會在得分中得到「1 + 2」(字符串),而不是3(數字)。 eval()執行表達式(字符串)「轉換」爲代碼。 w3schools.com/jsref/jsref_eval.asp

$("#nEqual").click(function() { 
    alert(eval(score)); 
}); 

雖然這將是難看的代碼!

+0

如果你還可以解釋一下,爲什麼需要'eval()',我會加註你的答案; )。 – Teemu

+0

在該示例中,按鈕不會添加值,而是連接字符串值。按'#nOne','#add','#nTwo'後,在'score'中得到「1 + 2」(字符串),而不是3(數字)。 eval()執行表達式(字符串)「轉換」爲代碼。 http://www.w3schools.com/jsref/jsref_eval.asp –

+0

實際上,您應該將解釋添加到您的答案中,儘管提到了w3schools,它仍會爲未來的訪問者提供更好的服務(以及OP of course)... +1)。 。 – Teemu

相關問題